PS_Baekjoon
[백준 C++] 9625번 : BABBA
SMILELY
2023. 3. 31. 11:12
https://www.acmicpc.net/problem/9625
9625번: BABBA
상근이는 길을 걷다가 신기한 기계를 발견했다. 기계는 매우 매우 큰 화면과 버튼 하나로 이루어져 있다. 기계를 발견했을 때, 화면에는 A만 표시되어져 있었다. 버튼을 누르니 글자가 B로 변했
www.acmicpc.net
풀이 :
- 문제 태그에도 dp라고 되어있고 검색해보니 다들 dp로 푼 것 같은데,
특징만 고려한다면 굳이 배열을 선언하지 않아도 풀 수 있다
- 특징 1 : A는 B로 변한다 -> A가 2개 있다면 A는 0개, B는 2개
특징 2 : B는 BA로 변한다 -> B가 2개 있다면 B는 2개 A도 2개
- A의 갯수를 저장할 변수만 하나 선언해주고 A의 갯수를 저장해둔 뒤, A에는 B의 갯수를 넣어주고,
B에는 A의 갯수를 더해주면 값을 구할 수 있다
코드 :
#include <iostream>
#include <algorithm>
using namespace std;
int main(){
cin.tie(NULL);
ios::sync_with_stdio(false);
int k, cnta, cntb, temp;
cin >> k;
cnta = 1; //초깃값 A는 1개이다
cntb = 0;
while(k--){ //k번만큼 돌 때,
temp = cnta; //A의 갯수를 저장하고,
cnta = cntb; //A에 B 대입,
cntb += temp; //B에는 따로 저장해뒀던 A를 더해준다
}
cout << cnta << ' ' << cntb << '\n';
}