묻고 답해요
141만명의 커뮤니티!! 함께 토론해봐요.
인프런 TOP Writers
-
해결됨자바스크립트 알고리즘 문제풀이 입문(코딩테스트 대비)
계단오르기 질문
강의를 듣기에 앞서 계단오르기 문제를 DFS로 풀었습니다. 아래와 같이 문제를 풀어도 문제가 없을까요?// 계단 오르기 function solution(target){ const count = [1,2]; const answerArr = [] const set = [] let answer = 0; function dfs(n){ if(n>target) return if(n === target){ answer+=1 answerArr.push([...set]) return } for(let el of count){ set.push(el) dfs(n+el) set.pop() } } dfs(0) console.log(answerArr) return answer }; console.log(solution(7)) console.log(solution(8)) console.log(solution(4))
-
미해결
다이나믹 프로그래밍에서 도무지 이해가 안가는 부분이 있어서 질문드립니다ㅠㅠ
dp 문제 중 효율적인 화폐 구성이라는 문제가 있는데요. k개의 화폐로 n원을 만들 때 가작 작은 화폐 개수를 구하는 문제입니다. 예를 들어, k = 2, 3, 5로 구성되어 있고, n = 7, 정답이 a(n)이라면, 7 = 2 + 5이므로, a(7) = 2 개가 되는 문제입니다. 여기서 점화식은 a(n) = min( a(n), a(n-k) + 1 ), a(n-k) + 1: 화폐 k원을 반드시 사용하는 경우를 의미 위의 예시에 점화식을 적용해본다면, 시작 전 a(n)을 모두 INF 값으로 초기화, a(7) = min( a(7), a(7-2)+1, a(7-3)+1, a(7-5)+1 ) = min( a(7), a(5)+1, a(4)+1, a(2)+1 ) 여기까지는 이해가 됐는데요, 설명이나 코드를 찾아보면 반복문의 위치가 제가 생각한거랑 반대로 돼있더라구요ㅠㅠ 저는 n에 대한 루프 안에 k의 루프가 와야 위의 점화식과 같은 방식이 된다고 생각했지만, 설명에서는 k = 2일 때 n=0~7까지 a(n)을 쫘르륵 구하고, 그다음 k = 3일 떄 쫘르륵, 마지막 k=7일 때 쭉 구해서 최종답을 구합니다. 왜 반복문의 위치가 이렇게 바뀌는 건가요?? 아시는 분 답변 주시면 정말 감사하겠습니다ㅠㅠ
-
미해결파이썬 알고리즘 문제풀이 입문(코딩테스트 대비)
다이나믹프로그래밍에 대해 질문있습니다 ㅎㅎㅎ
안녕하세요, 선생님 좋은 강의 감사합니다!!! 다이나믹프로그래밍 에제 풀다보니 궁금한점이 생겼는데 모든 다이나믹프로그래밍 문제는 탑다운, 바텀업 두 방식으로 다 풀 수 있는건가요?
-
미해결코딩테스트 전 꼭 알아야 할 개념과 문제(with 자바)
DP문제 문의
안녕하세요. 목차중에 DP가 들어있는데 아직 강의 준비 중이신지 궁금합니다. 혼자 DP문제를 여러개 접해보면서 점화식이라는게 있지만 이게 조금만 바꿔서 내면 응용이 전혀 안되고있습니다. ㅠㅠ DP문제도 역시 BFS처럼 공식으로 푸는게 가능할까요?