๐ป
[๋ฐฑ์ค] ๋์ ๊ณํ๋ฒ - 9461. ํ๋๋ฐ ์์ด ๋ณธ๋ฌธ
[๋ฐฑ์ค] ๋์ ๊ณํ๋ฒ - 9461. ํ๋๋ฐ ์์ด
๋ํจ๋ 2020. 2. 20. 10:24๋ฌธ์
์์ ๊ทธ๋ฆผ๊ณผ ๊ฐ์ด ์ผ๊ฐํ์ด ๋์ ๋ชจ์์ผ๋ก ๋์ฌ์ ธ ์๋ค. ์ฒซ ์ผ๊ฐํ์ ์ ์ผ๊ฐํ์ผ๋ก ๋ณ์ ๊ธธ์ด๋ 1์ด๋ค. ๊ทธ ๋ค์์๋ ๋ค์๊ณผ ๊ฐ์ ๊ณผ์ ์ผ๋ก ์ ์ผ๊ฐํ์ ๊ณ์ ์ถ๊ฐํ๋ค. ๋์ ์์ ๊ฐ์ฅ ๊ธด ๋ณ์ ๊ธธ์ด๋ฅผ k๋ผ ํ์ ๋, ๊ทธ ๋ณ์ ๊ธธ์ด๊ฐ k์ธ ์ ์ผ๊ฐํ์ ์ถ๊ฐํ๋ค.
ํ๋๋ฐ ์์ด P(N)์ ๋์ ์ ์๋ ์ ์ผ๊ฐํ์ ๋ณ์ ๊ธธ์ด์ด๋ค. P(1)๋ถํฐ P(10)๊น์ง ์ฒซ 10๊ฐ ์ซ์๋ 1, 1, 1, 2, 2, 3, 4, 5, 7, 9
์ด๋ค.
N์ด ์ฃผ์ด์ก์ ๋, P(N)์ ๊ตฌํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ ํ ์คํธ ์ผ์ด์ค์ ๊ฐ์ T๊ฐ ์ฃผ์ด์ง๋ค. ๊ฐ ํ ์คํธ ์ผ์ด์ค๋ ํ ์ค๋ก ์ด๋ฃจ์ด์ ธ ์๊ณ , N์ด ์ฃผ์ด์ง๋ค. (1 ≤ N ≤ 100)
์ถ๋ ฅ
๊ฐ ํ ์คํธ ์ผ์ด์ค๋ง๋ค P(N)์ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ1
2
6
12
์์ ์ถ๋ ฅ1
3
16
์๊ฐ
๊ท์น์ ์ฐพ์ผ๋ฉด ๊ฐ๋จํ๊ฒ ํ๋ฆฌ๋ ๋ฌธ์ ์๋ค. ์ ์ผ๊ฐํ์ ๋ณ์ ๊ธธ์ด P(n)= P(n-1)+P(n-5) ๋ผ๋ ์์ ์ฐพ์ ์๊ฐ ์๋ค. ๋ฌธ์ ์์ P(1)๋ถํฐ P(10)๊น์ง ์ฃผ์ด์ ธ์์ผ๋ฏ๋ก 1๋ถํฐ 5๊น์ง ๋ฃ์ด์ฃผ๋ฉด 6๋ถํฐ๋ ๊ตฌํ ์ ํ์์ ์ด์ฉํด ๋ฐฐ์ด์ ๊ฐ์ ๋ฃ์ด์ฃผ๊ณ ์ ๋ ฅ ๋ฐ์ t์ ๋ํ ํด๋น ๊ฐ์ ์ถ๋ ฅํด์ฃผ๋ฉด ๋๋ค.
P(6) = P(5) + P(1) = 2+1 = 3
P(7) = P(6) + P(2) = 3+1 = 4
P(8) = P(7) + P(3) = 4+1 = 5
P(9) = P(8) + P(4) = 5+2 = 7
.....
+ ๋ค๋ฅธ ๊ฒฝ์ฐ)
์ ํ์์ P(n) = P(n-3)+P(n-2) ์ผ๋ก ํ ๊ฒฝ์ฐ์๋ ์ ๋ต์ด๋ค.
์์ฑํ ์ฝ๋
#include <iostream>
using namespace std;
long long p[101];
int t,n;
int main(int argc, const char * argv[]) {
// insert code here...
ios_base::sync_with_stdio(false);
cin.tie(0);
p[1]=1;
p[2]=1;
p[3]=1;
p[4]=2;
p[5]=2;
for(int i=6; i<=100; i++){
p[i] = p[i-1] + p[i-5]; //์ ํ์
}
cin >> n;
while(n--){
cin >> t;
cout << p[t] << "\n";
}
return 0;
}
'์๊ณ ๋ฆฌ์ฆ > ๋ฌธ์ ํ์ด Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค] DFS์BFS - 2667. ๋จ์ง๋ฒํธ๋ถ์ด๊ธฐ(DFSํ์ด) (0) | 2020.02.20 |
---|---|
[๋ฐฑ์ค] ๋ถํ ์ ๋ณต - 2630. ์์ข ์ด ๋ง๋ค๊ธฐ (0) | 2020.02.20 |
[๋ฐฑ์ค] ์ฐ์ ์์ ํ - 1927. ์ต์ ํ (0) | 2020.02.19 |
[๋ฐฑ์ค] ์ฐ์ ์์ ํ - 11279. ์ต๋ ํ (0) | 2020.02.18 |
[๋ฐฑ์ค] ๊ทธ๋ฆฌ๋์๊ณ ๋ฆฌ์ฆ - 1543. ๋ฌธ์๊ฒ์ (0) | 2020.02.18 |