알고리즘
백준 2164번: 카드 2
mezo
2020. 4. 7. 16:08
728x90
반응형
쉽게 생각했지만 반례를 잘생각해야하는 문제였다.
#include <iostream>
#include <string>
#include <stack>
#include <queue>
using namespace std;
int n;
int main(void) {
ios_base::sync_with_stdio(0);
cin.tie(0); //cin 실행속도 향상
queue<int> que;
cin >> n;
for (int i = 1; i <= n; i++) {
que.push(i);
}
while(1){
if (que.size() == 1) {
cout << que.front() << "\n";
break;
}
que.pop();
que.push(que.front());
que.pop();
}
return 0;
}
while문 안의 if문이 위치가 중요하다.
while문 내에서 젤 위에 위치해야 한다.
왜냐하면 입력으로 1이 입력되었을 경우, 아무것도 pop하지 않고 1을 바로 출력해야하기 때문이다.
728x90
반응형