๐Ÿ’ป

[๋ฐฑ์ค€] ๋™์ ๊ณ„ํš๋ฒ• - 9461. ํŒŒ๋„๋ฐ˜ ์ˆ˜์—ด ๋ณธ๋ฌธ

์•Œ๊ณ ๋ฆฌ์ฆ˜/๋ฌธ์ œํ’€์ด Baekjoon

[๋ฐฑ์ค€] ๋™์ ๊ณ„ํš๋ฒ• - 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;
}

๋ฐ˜์‘ํ˜•
Comments