프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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() - ..
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. 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번째 인덱스는 값을 채워주고 순회를 시작해야 합니다. 문제에서 스티커는 원형으로 연결되어 있습니다. 따라서 첫 번째 스티커를 떼는 경우와 떼지 않는 경우 두 가지..