[PS] 99ν΄λ½ μ½ν μ€ν°λ 22μΌμ°¨ TIL (λ©λ¦¬ λ°κΈ°)
νκ·Έ: 99ν΄λ½, PS, TIL, λμ κ³νλ², μ½λ©ν μ€νΈμ€λΉ, νν΄99
μΉ΄ν κ³ λ¦¬: PS
λ¬Έμ
μ€λͺ
μ λ ₯ κ° n μ΄ μ£Όμ΄μ‘μ λ, 1κ³Ό 2μ ν©μΌλ‘λ§ κ·Έ μλ₯Ό λ§λλ κ²½μ°μ μλ₯Ό ꡬνλ λ¬Έμ
νμ΄
λμ κ³νλ²(λ€μ΄λλ―Ή νλ‘κ·Έλλ°, DP) : κ°κ°μ κ²½μ°μ μλ₯Ό λμλ¦¬κ° 1λ‘ λλλ κ²½μ°μ 2λ‘ λλλ κ²½μ°λ‘ λΆλ¦¬ν΄μ μ μ΄λ³΄λ©΄ μλμ κ°λ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
// n = 3
[2,1]
[1,1,1]
[1,2]
// 1λ‘ λλλ κ²½μ°: 2κ°,
// 2λ‘ λλλ κ²½μ°: 1κ°
// n = 4
[2, 1, 1]
[1, 2, 1]
[1, 1, 1, 1]
[1, 1, 2]
[2, 2]
// 1λ‘ λλλ κ²½μ°: 3κ°,
// 2λ‘ λλλ κ²½μ°: 2κ°
// n = 5
[2, 1, 1, 1]
[1, 2, 1, 1]
[1, 1, 1, 1, 1]
[1, 1, 2, 1]
[2, 2, 1]
[2, 1, 2]
[1, 2, 2]
[1, 1, 1, 2]
// 1λ‘ λλλ κ²½μ°: 5κ°,
// 2λ‘ λλλ κ²½μ°: 3κ°
μκ°ν΄λ³΄λ©΄, λ§μ§λ§μ 1μ λνλ κ²½μ°μ μλ n - 1 κ²½μ°μ μμ κ°λ€. λ§μ°¬κ°μ§λ‘ λ§μ§λ§μ 2λ₯Ό λνλ κ²½μ°λ n - 2 μ κ²½μ°μ μμ κ°λ€.
μλ₯Ό λ€μ΄ n = 5μΌλ 1λ‘ λλλ κ²½μ°λ n = 4μ μΌμ΄μ€μ 1λ§ λν΄μ£Όλ κ²°κ³Όμ΄λ―λ‘ 4μ κ²½μ°μ μμ κ°κ³ 2λ‘ λλλ κ²½μ°λ n = 3 μ μΌμ΄μ€μ 2λ₯Ό λν΄μ€ κ²°κ³Όμ κ°λ€.
μ΄λ₯Ό μμΌλ‘ λνλ΄λ©΄ i(n) = i(n - 1) + i(n - 2)
κ° λλ€.
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
class Solution {
public long solution(int n) {
long answer;
int[] dp = new int[2001];
dp[1] = 1;
dp[2] = 2;
dp[3] = 3;
for (int i = 4; i < dp.length; i++) {
dp[i] = (dp[i - 1] + dp[i - 2]) % 1234567;
}
answer = dp[n];
return answer;
}
}
νκ³
μ΄λ° λ¬Έμ λ κ²½μ°μ μλ₯Ό μ μ΄λ³΄λ©΄ ν μ μλ λ¬Έμ μ΄μ§λ§, κ·Έλλ μ νμμ΄ μ 보μ΄μ§ μμλ 1λ‘ λλλ μμ, 2λ‘ λλλ μμ λ±μΌλ‘ μ μ΄λ³΄λ©΄ κ·μΉμ λ°κ²¬ν μ μλ€.
λκΈλ¨κΈ°κΈ°