9625번 - BABBA
처음에는 string 객체를 만들어서, 돌아갈 때마다 문자열을 새로 만들고,
마지막에 다시 갯수를 세서 문제를 풀었다. 그랬더니 메모리 초과가 발생했다..
다시 생각해보니, 단순히 갯수만으로도 충분히 풀 수 있는 문제였는데 엄청 큰 문자열을 쓰는 우를 범했다.
단순하게 A 1개는 자신을 희생하고 B 1개를 생산하고, B는 A 1개, B는 그대로를 유지하므로 그에 관해서 풀면 된다.
<정답 코드>
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 | #include<iostream> using namespace std; int main() { int k; cin >> k; int numA = 1, numB = 0; for (int i = 0; i < k; i++) { int tmp = numA; numA = numB; numB += tmp; } cout << numA << " " << numB << endl; return 0; } | cs |
반응형