// [0, 1, ... 그 이전에 존재하던 수들을 서로 더해서 표현한 수]
// [0, 1, 1, 2, 3, 5, 8, 13, 21, 34, 55, ...]
class Solution {
public int solution(int n) {
// F(0) -> 0
// F(1) -> 1
// F(2) -> F(0) + F(1)
// F(3) -> F(1) + F(2)
// 이거 하나씩을 인덱스로 볼 수 있다.
int[] memo = new int[n + 1]; // 입력을 받아주는 n+1(끝 인덱스가 n이 되는 배열)
for (int i = 0; i <= n; i++) {
if (i == 0 || i == 1) {
memo[i] = i;
} else {
int sum = memo[i - 2] + memo[i - 1];
memo[i] = sum % 1234567;
}
}
return memo[n]; // 0~n (n-1 => n)
}
}
'Skills > Algorithm' 카테고리의 다른 글
[백준] 24445번: 알고리즘 수업 - 너비 우선 탐색 2 (JAVA) (0) | 2023.08.11 |
---|---|
[백준] 24480번: 알고리즘 수업 - 깊이 우선 탐색 2 (JAVA) (1) | 2023.08.11 |
[백준] 10799번: 쇠막대기 (JAVA) (0) | 2023.08.11 |
[백준] 2161번: 카드1 (JAVA) (0) | 2023.08.11 |
[프로그래머스] 64061번: 크레인 인형뽑기 게임 (JAVA) (0) | 2023.08.11 |