문제https://school.programmers.co.kr/learn/courses/30/lessons/12907 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제는 돈의 조합으로 나올 수 있는 금액들의 DP를 이용해 풀이해야한다. 생각보다 구현 아이디어가 팍 하고 떠오르지 않았다. 코드function solution(n, money) { const dp = Array.from({ length: n + 1 }, () => 0); dp[0] = 1; for (const coin of money) { for (let i = coin..
구현
문제 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이번 문제는 투 포인터 알고리즘 처럼 풀이할 수 있지만(링크), DP 알고리즘을 이용해 풀이했다. 우선 DP의 구조는 시작 지점과 끝 지점의 위치를 이용했다.DP[시작][끝] 이런 구조를 갖고 있으며, 이러한 구조는 시작 위치의 문자와 끝 위치의 문자가 일치하는지 true false로 구분해 저장한다. 코드const solution = (s) => { let answer = 1; const dp = Array.from({ length: s.length }, (_, i) => Array.from({ l..
문제https://school.programmers.co.kr/learn/courses/30/lessons/42890 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제를 풀이하는 흐름은 나올 수 있는 조합을 구한뒤 조합별 데이터가 유니크한지 검증하고, 그 다음 미니멀한지 체크하면 된다. 조합의 경우 재귀적으로 조합을 구할 수 있게 풀이한다.function makeCombination(num, arr) { let result = []; if (num === 1) { return arr.map(a => [a]) } arr.forEach((f..
문제https://school.programmers.co.kr/learn/courses/30/lessons/64062 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이이 문제는 이분탐색으로 풀이해야한다. 건너야 하는 돌들을 탐색해야 하나 생각했지만, 사실 건널 수 있는 인원수를 이분탐색 해야한다. 인원수는 최소 1명, 최대 2억명이다. 이유는 바위의 내구성을 나타내는 숫자의 범위는 1 ~ 2억이기 때문이다. 최소값이 최대값 보다 적을 때까지 탐색을 진행한다. 이분탐색을 진행하며 중간값을 각 바위의 숫자에 빼준다. 뺀 결과값이 0이하이면 중간값의 인원수만큼..
문제https://school.programmers.co.kr/learn/courses/30/lessons/176962# 풀이이 문제는 구현 문제이며 필자는 과제를 담고 있는 배열을 큐를 사용해 사용했고, 남아있는 과제에 스택을 적용해 사용했다. 큐를 사용해 진행중인 과제를 구현해 순서에 맞게 진행되는 과제의 흐름을 직관적으로 활용할 수 있으며, 남아있는 과제에 스택을 적용해 나중에 들어온 과제부터 수행한다는 제한 사항을 충족할 수 있다. 첫번째 풀이는 1시간 정도 걸렸는데, 6번과 9번 케이스에서 계속 틀려서 30분은 고민을 했다. // stack을 이용해 멈춘 과제 저장 후 하나씩 빼내면서 잔업 진행function solution(plans) { const newPlans = plans.map(..
문제https://school.programmers.co.kr/learn/courses/30/lessons/134239 프로그래머스코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.programmers.co.kr 풀이해당 문제는 정적분을 구해야 하는 문제인데 정적분 공식을 이용해 풀지 않고, 각 지점별 넓이를 구한 뒤 범위에 존재하는 영역의 넓이를 전부 더해 답을 도출한다. 간단한 구현 문제였다. 코드function solution(k, ranges) { const arr = [k]; const size = []; const answer = []; while (k > 1) { if ..