매일 조금씩

백준 2164번: 카드 2 본문

알고리즘

백준 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
반응형

'알고리즘' 카테고리의 다른 글

백준 1966번: 프린터 큐  (0) 2020.04.08
백준 11866번: 요세푸스 문제 0  (0) 2020.04.07
백준 18258번: 큐 2  (0) 2020.04.07
백준 1874번: 스택 수열  (0) 2020.04.05
백준 4949번: 균형잡힌 세상  (0) 2020.04.05