https://school.programmers.co.kr/learn/courses/30/lessons/12914#
문제 설명
효진이는 멀리 뛰기를 연습하고 있습니다. 효진이는 한번에 1칸, 또는 2칸을 뛸 수 있습니다. 칸이 총 4개 있을 때, 효진이는
(1칸, 1칸, 1칸, 1칸)
(1칸, 2칸, 1칸)
(1칸, 1칸, 2칸)
(2칸, 1칸, 1칸)
(2칸, 2칸)
의 5가지 방법으로 맨 끝 칸에 도달할 수 있습니다. 멀리뛰기에 사용될 칸의 수 n이 주어질 때, 효진이가 끝에 도달하는 방법이 몇 가지인지 알아내, 여기에 1234567를 나눈 나머지를 리턴하는 함수, solution을 완성하세요. 예를 들어 4가 입력된다면, 5를 return하면 됩니다.
제한 사항
- n은 1 이상, 2000 이하인 정수입니다.
입출력 예
n | result |
4 | 5 |
3 | 3 |
입출력 예 설명
입출력 예 #1
위에서 설명한 내용과 같습니다.
입출력 예 #2
(2칸, 1칸)
(1칸, 2칸)
(1칸, 1칸, 1칸)
총 3가지 방법으로 멀리 뛸 수 있습니다.
나의 문제 풀이
function solution(n) {
let arr= Array.from(Array(n).fill(0));
arr[1] = 1;
arr[2] = 2;
for (let i = 3; i <= n; i++) {
arr[i] = (arr[i-1] + arr[i-2])%1234567;
}
return arr[n];
}
다른 풀이
비슷한데 다만 다른점은 나는 배열에 0을 미리 넣어주었다.
하지만 배열에 굳이 0을 넣어줄 필요 없다는 것을 알았다.
function solution(n) {
var answer = 0;
var dp=[];
dp[1]=1;
dp[2]=2;
for(var i=3;i<=n;i++){
dp[i]=dp[i-1]+dp[i-2] %1234567;
}
answer=dp[n];
return answer%1234567;
}
'코딩 문제 > 프로그래머스 [ JavaScript ]' 카테고리의 다른 글
[ 프로그래머스 / JavaScript ] 두 정수 사이의 합 (0) | 2022.10.04 |
---|---|
[ 프로그래머스 / JavaScript ] 자연수 뒤집어 배열로 만들기 (0) | 2022.10.04 |
[ 프로그래머스 / JavaScript ] 행렬의 곱셈 (0) | 2022.10.03 |
[ 프로그래머스 / JavaScript ] 다음 큰 숫자 (0) | 2022.10.02 |
[ 프로그래머스 / JavaScript ] 피보나치 수 (1) | 2022.10.01 |
댓글