Algorithm/dynamic programming

[백준] 알고리즘 9625번 - BABBA 문제

낭강 2021. 3. 21. 19:01
문제

www.acmicpc.net/problem/9625

 

9625번: BABBA

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

www.acmicpc.net

소스코드
#include <bits/stdc++.h>
using namespace std;
int dp[46];
int dp1[46];
int main() {
	ios_base::sync_with_stdio(false); cin.tie(NULL); cout.tie(NULL);
	int k;
	cin >> k;
	dp[0] = 1, dp[1] = 0;
	dp1[0] = 0, dp1[1] = 1;
	for (int i = 2; i <= k; i++) {
		dp[i] = dp[i - 1] + dp[i - 2];
		dp1[i] = dp1[i - 1] + dp1[i - 2];
	}
	cout << dp[k] << " " << dp1[k];
}
풀이

예시에 나와있는 규칙대로 표를 만들어서 쭉 나열해보면 피보나치 수열을 이루고 있는 것을 확인할 수 있다.

간단하게 두 배열을 피보나치 구한 후 출력해준다.