69.돌다리 건너기 - Dynamic Programming
Updated:
🔍 문제
철수는 학교에 가는데 개울을 만났습니다.
개울은 N개의 돌로 다리를 만들어 놓았습니다.
철수는 돌 다리를 건널 때 한 번에 한 칸 또는 두 칸씩 또는 세 칸씩 건너뛰면서 돌다리를 건널 수 있습니다.
철수가 개울을 건너는 방법은 몇 가지일까요
🔹 입력설명
첫째 줄은 돌의 개수인 자연수 N(3≤N≤45)이 주어집니
🔹 출력 설명
첫 번째 줄에 개울을 건너는 방법의 수를 출력합니다
🔹 입력예제 1
7
🔹 출력 예제 1
81
📌 풀이
function solution(n) {
let answer = 0;
let dy = Array.from({ length: n + 2 }, () => 0);
// 세칸씩 이동하기 때문에 처음 출발 지점에서 dy[3] 지점까지 한번에 갈 수 있는 시점도 같이 초기화 해줘야 함!!
dy[0] = 1;
dy[1] = 1;
dy[2] = 2;
for (let i = 3; i <= n + 1; i++) {
dy[i] = dy[i - 3] + dy[i - 2] + dy[i - 1]; // 3칸 까지 갈수 있는 경우의 수
}
answer = dy[n + 1];
return answer;
}
console.log(solution(7));
Leave a comment