프로그래머스

문제https://school.programmers.co.kr/learn/courses/30/lessons/17681 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이입력을로 받은 배열에 저장되어 있는 숫자들을 2진수로 변환한 뒤, 자릿수를 맞춰주고 OR 연산을 이용해 벽의 구현을 진행해준다. 코드const solution = (n, arr1, arr2) => { arr1 = arr1.map(e => { let binary = e.toString(2); const len = binary.length; for (let i = 0; i {..
문제https://school.programmers.co.kr/learn/courses/30/lessons/81301 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이각 영단어를 배열에 넣은 뒤 영단어를 기준으로 split 메서드를 이용해 문자열을 나눈다. 이렇게 나누어진 문자열을 join 메서드를 이용해 숫자(문자열이 배열에서 갖고 있는 인덱스)로 다시 연결해준다. 코드const solution = (s) => { const arr = [ "zero", "one", "two", "three", "four", "five"..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이이 문제는 DP 알고리즘을 이용해 풀이하는 문제이다. 이 문제를 보면 홀수 길이의 경우 절대 조건을 만족하는 경우가 없기에 0을 반환한다. 짝수 길이의 경우 점화식이 존재한다. 처음에는 어떻게 점화식을 만들지 잘 몰랐다. 하지만, 조금 더 생각해보면 짝수 길이만 되며, 이전의 경우를 이용한 경우를 추가하며 이전 값들을 이용하는 DP 알고리즘의 이용이 필요하다는 것을 알게되었다. 점화식은 ((dp[i - 1] * 4)) - (dp[i - 2]) % 1000000007 이지만, 이 경우는 dp[i - 1]..
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제와 같이 큰 범위내에서 특정 조건을 만족하는 최소값 혹은 최대값을 찾는 탐색 문제의 경우 완전 탐색을 진행하면 시간초과가 발생할 수 있기에 이분탐색 알고리즘을 이용해 풀이해야 한다. 사실 이 문제는 이분탐색 알고리즘만 잘 구현하면 어려운 부분은 없다. 그나마 문제를 틀렸을 경우 시간을 더해주는 로직 구현에 시경을 써야 한다는 점 빼면 그렇게 어려운 문제는 아닌것같다. 코드const solution = (diffs, times, limit) => { let [lp, rp] = [1, diffs.r..
문제https://school.programmers.co.kr/learn/courses/30/lessons/150369?language=javascript 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr  풀이이번 문제는 단순한 수학을 통해 풀 수 있는 문제다. 문제를 파악해 보면, 결국 맨 끝 집은 찍어야 하므로 필자는 맨 끝집부터 탐색을 시작했다. 끝에서 부터 배달 및 수거한 갯수를 측정해 이 값들이 모두 양수일 때 까지 cap 만큼 더해주는 과저을 반복한다. 코드function solution(cap, n, deliveries, pickups) { le..
문제https://school.programmers.co.kr/learn/courses/30/lessons/250136 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이그냥 일반적인 BFS 문제로 처음 파악을 했다. 근데 풀어보니 틀리기도 했고 효율성 검사도 통과하지 않았다.const bfs = (arr, x) => { const start = Array.from({length: arr.length}, (_, i) => [i, x]); for(let i = 0; i = 0 && ny >= 0 && nx 1) continue; ..