๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ
Algorithm ๐Ÿง‘๐Ÿป‍๐Ÿ’ป/๋ฐฑ์ค€(BOJ)

[๋ฐฑ์ค€,c++] 9625๋ฒˆ - BABBA

by ์•ˆ์ฃผํ˜• 2021. 12. 29.

๋ฌธ์ œ

 

9625๋ฒˆ: BABBA

์ƒ๊ทผ์ด๋Š” ๊ธธ์„ ๊ฑท๋‹ค๊ฐ€ ์‹ ๊ธฐํ•œ ๊ธฐ๊ณ„๋ฅผ ๋ฐœ๊ฒฌํ–ˆ๋‹ค. ๊ธฐ๊ณ„๋Š” ๋งค์šฐ ๋งค์šฐ ํฐ ํ™”๋ฉด๊ณผ ๋ฒ„ํŠผ ํ•˜๋‚˜๋กœ ์ด๋ฃจ์–ด์ ธ ์žˆ๋‹ค. ๊ธฐ๊ณ„๋ฅผ ๋ฐœ๊ฒฌํ–ˆ์„ ๋•Œ, ํ™”๋ฉด์—๋Š” A๋งŒ ํ‘œ์‹œ๋˜์–ด์ ธ ์žˆ์—ˆ๋‹ค. ๋ฒ„ํŠผ์„ ๋ˆ„๋ฅด๋‹ˆ ๊ธ€์ž๊ฐ€ B๋กœ ๋ณ€ํ–ˆ

www.acmicpc.net

 

์ฝ”๋“œ

#include <iostream>
using namespace std;

int A[46],B[46];

int main(){
    ios_base::sync_with_stdio(false);
    cin.tie(0);
    
    
    int n; cin>>n;
    
    A[0]=1; B[0]=0;
    A[1]=0; B[1]=1;
    A[2]=1; B[2]=1;
 
    
    for(int i=3; i<=n; i++){
        A[i] = B[i-1];
        B[i] = A[i-1] + B[i-1];
    }
    cout<<A[n]<< ' '<<B[n];
}

 

ํ’€์ด

๊ฐ„๋‹จํ•œ DP๋ฌธ์ œ์˜€์Šต๋‹ˆ๋‹ค.

A[0] =1, B[0] = 0 (์ œ์ผ ์ดˆ๊ธฐ ์ƒํƒœ)

A[1]=0, B[1] = 1 (ํ•œ๋ฒˆ ๋ˆŒ๋ €์„ ๋•Œ)

A[2]=1, B[2] = 1 (๋‘ ๋ฒˆ ๋ˆŒ๋ €์„ ๋•Œ) 

์ด๋ ‡๊ฒŒ ์ดˆ๊ธฐ๊ฐ’์„ ์„ค์ •ํ•ด์ฃผ๊ณ  ์‚ดํŽด๋ณด๋ฉด A[n] = B[n-1], B[n] = A[n-1] + B[n-1] ์˜ ์ ํ™”์‹์„ ๋„์ถœํ•ด๋‚ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

 

๋Œ“๊ธ€