-
[9625] BABBABOJ 2021. 10. 7. 00:51
https://www.acmicpc.net/problem/9625
9625번: BABBA
상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했
www.acmicpc.net
<문제>
바뀌기 전의 알파벳은 A와 B, 모두 한글자 이므로
"AABBA", "ABABA", "BBAAA"처럼 각 알파벳의 개수는 동일하다면, 순서가 바뀌어도 결과는 변하지 않는다.
결국 현재 상태에 영향을 미치는건 버튼을 누른 횟수 N,
이후의 상태를 알기위해 현재에 저장해두어야 하는것은 'A'와 'B'의 개수가 되겠다.
이를 2차원 dp[N][2]로 선언해주어 아래처럼 dp를 채워나가고, dp[N][0]과 dp[N][1]을 출력하면 된다.
dp[i][0] : i번 버튼을 눌렀을때의 'A'의 개수
dp[i][1] : i번 버튼을 눌렀을때의 'B'의 개수<소스코드>
123456789101112131415#include <bits/stdc++.h>using namespace std;int dp[50][2], n;int main(void) {int i;cin >> n;dp[0][0] = 1;dp[0][1] = 0;for (i = 1; i <= n; i++) {dp[i][0] = dp[i - 1][1];dp[i][1] = dp[i - 1][0] + dp[i - 1][1];}cout << dp[n][0] << " " << dp[n][1];return 0;}cs 'BOJ' 카테고리의 다른 글
[1005] ACM Craft (0) 2021.10.07 [12180] Googlander (Small) (0) 2021.10.07 [11726] 2×n 타일링 (0) 2021.10.05 [11653] 소인수분해 (0) 2021.10.05 [2869] 달팽이는 올라가고 싶다 (0) 2021.10.05