🤔Zod 가 무엇인가요? Zod is a TypeScript-first schema declaration and validation library. Zod는 타입스크립트 우선 스키마 선언 및 검증 라이브러리 입니다. 🤔왜 Zod를 사용하나요? 타입스크립트는 컴파일 시점에서 타입을 검사합니다. 런타임에 동적으로 생성되는 값과 타입스크립트의 타입 간의 불일치가 발생하여 에러가 발생할 수 있는데요, 이를 방지할 수 있는 라이브러리가 바로 Zod입니다. 아래와 같은 상황이 런타임에 동적으로 생성되는 값과 타입스크립트 타입 간의 불일치가 발생하는 코드의 예 입니다. interface User { id: number; name: string; } const Json = '{"id": 1323, "username":..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 😉문제 풀이 설명 이 문제는 이분탐색 문제 입니다. 이분 탐색 문제를 많이 접하지 않아서 이분 탐색 문제임을 알아차리는게 어려웠습니다. 1부터 2억까지 숫자 중 하나의 값을 찾는 문제임을 캐치 한다면 이분 탐색으로 접근하는 방법을 떠올리지 않았을 까 생각합니다. 이분 탐색임을 인지한다면 문제 자체가 어렵진 않습니다. 아래의 코드를 확인해 주세요 😎문제 풀이 코드 function solution(stones, k) { let str = 1; let end = 200000000; while(str !== end)..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 😉문제 풀이 설명 개인적으로 조금 어려웠던 문제였습니다. 이 문제는 Map 객체를 쓰지 않고는 어떻게 풀 방법이 생각나지 않네요. 이번에 배웠던 점은 map.value().next() 함수를 통해서 Map을 Queue와 같은 형태로 사용할 수 있다는 점입니다. Map 객체를 Queue의 형태로 사용할 수 있으면서 동시에 key값으로 원하는 값을 가질 수 있어 데이터를 찾는데 배열을 순회하는 형식O(n)이 아닌 한번에 찾을 수 있는 점O(1)을 배울 수 있었습니다. Map.prototype.values() - ..
이번 포스팅에서 이벤트 핸들러 등록 방식에 대해 알아봅시다 🤔이벤트 핸들러 어트리뷰트 방식 HTML요소의 어트리뷰트 중에는 이벤트에 대응하는 이벤트 핸들러 어트리뷰트가 있습니다. 이벤트 핸들러 어트리뷰트 값으로 함수 호출문 등의 문을 할당하면 이벤트 핸들러가 등록됩니다. Click! 주의할 점은 함수 참조가 아닌 함수 호출문 등의 “문”(statement)를 할당한다는 것이다. 이 방식은 더 이상 사용하지 않는 것이 좋다. html과 js의 관심사가 다르므로 혼재하는 것 보다는 분리하는 것이 좋다. 하지만 CBD(Component Based Development) 방식의 라이브러리는 이벤트 핸들러 어트리뷰트 방식으로 이벤트를 처리한다. Click Click Click Click 🤔이벤트 핸들러 프로퍼티 ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 😉문제 풀이 설명 아래는 브루트 포스, 완전 탐색을 이용한 문제풀이 입니다. user_id 배열의 길이가 8 이하임을 캐치하고 완전 탐색으로 풀었습니다. 재귀를 이용하여 풀었고, 같은 문자열임을 확인하는 데는 정규 표현식을 사용하였습니다. pick_arr는 현재 선택한 user_id를 뜻합니다. pick_arr[i] 값이 0이면 user_id[i] 선택되지 않았고, 1이라면 선택되었음을 뜻합니다. answer_arr에는 경우의 수를 담습니다. banned_index를 완전히 순회한다면 pick_arr를 joi..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 😉문제 풀이 설명 위 문제는 DP문제입니다. 따라서 점화식을 구하고, 이에 따른 코드를 작성할 필요가 있습니다. 점화식은 다음과 같습니다. dp[i] = Math.max(dp[i - 1], dp[i - 2] + sticker[i]) 🤨주의 사항 dp[i] 배열을 순회할 때 참조하는 인덱스는 i-1과 i-2입니다. 따라서 dp 배열의 0번째 인덱스와 1번째 인덱스는 값을 채워주고 순회를 시작해야 합니다. 문제에서 스티커는 원형으로 연결되어 있습니다. 따라서 첫 번째 스티커를 떼는 경우와 떼지 않는 경우 두 가지..