Notice
Recent Posts
Recent Comments
Link
«   2024/09   »
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 28
29 30
Tags
more
Archives
Today
Total
관리 메뉴

Ruff! Ruff!

#[C++] 9625 - BABBA 본문

백준

#[C++] 9625 - BABBA

maeng-kim 2024. 2. 2. 23:03

https://www.acmicpc.net/problem/9625

 

9625번: BABBA

상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했

www.acmicpc.net


문제

상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다.

기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했다. 한 번 더 누르니 BA로 바뀌고, 그 다음에는 BAB, 그리고 BABBA로 바뀌었다. 상근이는 화면의 모든 B는 BA로 바뀌고, A는 B로 바뀐다는 사실을 알게되었다.

버튼을 K번 눌렀을 때, 화면에 A와 B의 개수는 몇 개가 될까?

입력

첫째 줄에 K (1 ≤ K ≤ 45)가 주어진다.

출력

첫째 줄에 A의 개수와 B의 개수를 공백으로 구분해 출력한다.


코드

#include <iostream>
using namespace std;

int main()
{
    int n =0;
    long long A[45];
    long long B[45];
    
    A[0]=0; //A, B개수를 1번 눌렀을 때부터 살펴보면 (n-1)+ (n-2)=n번째 눌렀을 때 A, B의 개수가 됨을 알 수 있음
    A[1]=1; //A: 0,1 | B: 0,1번째만 지정해두고 2부터 for문으로 찾으면 됨
    B[0]=1;
    B[1]=1;
    
    cin >> n;
    for (int i=2; i<n; i++) {
        A[i]=A[i-1]+A[i-2];
        B[i] = B[i-1]+B[i-2];
    }
    
    cout << A[n-1] << " " << B[n-1];
    return 0;
}

상근이는 도대체 누구길래 백준 문제마다 나오는 것일까

 

'백준' 카테고리의 다른 글

#[C++]1316 - 그룹 단어 체커  (0) 2024.02.08
#[C++] 11399 - ATM  (0) 2024.02.02
#[C++] 4673 - 셀프넘버  (0) 2024.02.02
#[C++]2217 - 로프  (0) 2024.01.31
#[C++]1789 - 수들의 합  (1) 2024.01.31