본문 바로가기

algorithm/Dynamic Programming

[C++] BOJ 9625 RIJEČI (BABBA)

문제

백준 9625번 BABBA

www.acmicpc.net/problem/9625

 

9625번: BABBA

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

www.acmicpc.net

코드

#include<iostream>
using namespace std;

int arr[50][2];
//arr[i][0]:number of A, arr[i][1]: number of B
int k;
int main() {
	arr[0][0] = 1;
	arr[0][1] = 0;
	cin >> k;
	for (int i = 1; i <= k; i++) {
		arr[i][0] = arr[i-1][1];
		arr[i][1] = arr[i - 1][0] + arr[i - 1][1];
	}
	cout << arr[k][0] << " " << arr[k][1];
}

풀이방법

입력값이 k일때 A, B의 개수는 입력값이 (k-1)일 때의 A, B의 개수와 규칙성이 있으므로 동적계획법을 이용한다. arr[i][0]은 A의 개수, arr[i][1]은 B의 개수를 나타낸다.

 

'algorithm > Dynamic Programming' 카테고리의 다른 글

[C++] BOJ 1010 다리 놓기  (0) 2021.05.01
[C++] BOJ 13301 타일 장식물  (0) 2021.05.01
[C++] BOJ 10870 피보나치 수 5  (0) 2021.05.01
[C++] BOJ 2748  (0) 2021.03.27
[C++] BOJ 2839 ŠEĆER 설탕배달  (0) 2021.03.27