728x90
난이도 Lv. 4
풀이일 : 2410244
https://school.programmers.co.kr/learn/courses/30/lessons/12914
문제
아이디어
칸 | 0 | 1 | 2 | 3 | 4 | 5 |
방법 수 | 0 | 1 | 2 | 3 | 5 | 8 |
- 3부터는 (n-1) + (n-2) 형태로 방법의 수가 증가한다
- dp로 방법의 수를 더해나가자
- 1234567로 나눈 나머지를 기록하여 숫자가 커지지 않게 조절하자
풀이
function solution(n) {
var answer = 0;
let dp = []
for (let i = 0; i < n + 1; i++) {
if (i < 2) {
dp[i] = i + 1;
} else {
dp[i] = (dp[i-1] + dp[i-2]) % 1234567
}
}
answer = dp[n-1];
return answer;
}
- dp 크기 별도 설정이 필요하지 않았다
- 반복문을 순회하며, i가 0, 1일 경우 예외 처리로 dp 기록
- i가 2 이상일 경우, (n-1) + (n-2) 정보를 더해 dp 기록
- 다만 dp 기록 시, 숫자가 커지는 것을 방지하기 위해 처음부터 1234567로 나누어 기록한다.
느낀점
- 자바로 푼 문제를 자바스크립트로 다시 푸는 연습 중인데 이상한 데에서 헤맨다. dp 크기 설정하다가 undefined 보고 당황한 후에 고쳤다.
- 조금 익숙해지면 자스로 바로 문제 풀이를 시작해도 될 것 같다.
'알고리즘 > Lv. 2' 카테고리의 다른 글
프로그래머스 154538 숫자 변환하기 자바 풀이 (0) | 2024.10.25 |
---|---|
프로그래머스 12914 멀리 뛰기 파이썬 풀이 (1) | 2024.10.24 |
프로그래머스 12914 멀리 뛰기 자바 풀이 (0) | 2024.10.24 |
프로그래머스 12909 올바른 괄호 자바스크립트 풀이 (0) | 2024.10.22 |
프로그래머스 12909 올바른 괄호 자바 풀이 (1) | 2024.10.22 |