λ¬Έμ |
λ¬Έμ
0κ³Ό 1λ‘λ§ μ΄λ£¨μ΄μ§ μλ₯Ό μ΄μ§μλΌ νλ€. μ΄λ¬ν μ΄μ§μ μ€ νΉλ³ν μ±μ§μ κ°λ κ²λ€μ΄ μλλ°, μ΄λ€μ μ΄μΉμ(pinary number)λΌ νλ€. μ΄μΉμλ λ€μμ μ±μ§μ λ§μ‘±νλ€.
- μ΄μΉμλ 0μΌλ‘ μμνμ§ μλλ€.
- μ΄μΉμμμλ 1μ΄ λ λ² μ°μμΌλ‘ λνλμ§ μλλ€. μ¦, 11μ λΆλΆ λ¬Έμμ΄λ‘ κ°μ§ μλλ€.
μλ₯Ό λ€λ©΄ 1, 10, 100, 101, 1000, 1001 λ±μ΄ μ΄μΉμκ° λλ€. νμ§λ§ 0010101μ΄λ 101101μ κ°κ° 1, 2λ² κ·μΉμ μλ°°λλ―λ‘ μ΄μΉμκ° μλλ€.
N(1 β€ N β€ 90)μ΄ μ£Όμ΄μ‘μ λ, Nμ리 μ΄μΉμμ κ°μλ₯Ό ꡬνλ νλ‘κ·Έλ¨μ μμ±νμμ€.
μ λ ₯
첫째 μ€μ Nμ΄ μ£Όμ΄μ§λ€.
μΆλ ₯
첫째 μ€μ Nμ리 μ΄μΉμμ κ°μλ₯Ό μΆλ ₯νλ€.
νμ΄κ³Όμ |
(1)κ·μΉ
- DPμ΄λ―λ‘ μ νμκ³Ό λ©λͺ¨μ΄μ μ΄μ μ μ΄μ©ν©λλ€.
- 0μΌλ‘ μμν μ μμ΅λλ€.
- λ§μ§λ§ μ«μκ° 1μΌλ λ€μNμ리 μ«μμμ +1μ κ°―μλ₯Ό κ°μ΅λλ€.(101μΌκ²½μ°, 1010)
- λ§μ§λ§ μ«μκ° 0μΌλ λ€μNμ리 μ«μμμ +2κ°μ κ°―μλ₯Ό κ°μ΅λλ€. (100μΌκ²½μ°, 1000,1001)
(2)μμ
n=5κΉμ§μ μλ₯Ό λ§λ€μ΄ λ΄ λλ€.
n=1 |
1 (1κ°) |
n=2 |
10 (1κ°) |
n=3 |
100,101 (2κ°) |
n=4 |
1000,1001,1010 (3κ°) |
n=5 |
10000,10001,10010,10100,10101(5κ°) |
μ΄λ―λ‘,
μ νμμ d[n] = d[n-1] + d[n-2] κ° λ©λλ€.
(3)μ½λ
#include <iostream> using namespace std; long long memo[100]; int main() { int N; cin >> N; memo[0] = memo[1] = 1; for (int i = 2; i < N; i++) memo[i] = memo[i - 1] + memo[i - 2]; cout << memo[N-1] << endl; return 0; } | cs |
'π€ PS(Problem Solving) > λ°±μ€(BOJ)' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 2156λ² - ν¬λμ£Ό μμ (0) | 2019.07.09 |
---|---|
[λ°±μ€] 9456λ² - μ€ν°μ»€ (0) | 2019.07.08 |
[λ°±μ€] 11057λ² - μ€λ₯΄λ§ μ (0) | 2019.07.07 |
[λ°±μ€] 10844λ² - μ¬μ΄ κ³λ¨ μ (0) | 2019.07.05 |
[λ°±μ€] 9095λ² - 1, 2, 3 λνκΈ° (0) | 2019.07.03 |