백준/기타

2164번: 카드2 [C++]

Koalitsiya 2023. 4. 10. 18:04

문제

 

 

풀이

선입선출(FIFO: First-In First-Out)의 구조를 가지는 큐(Queue)를 이용하면 간단하게 해결할 수 있는 문제다.

#include <iostream>
#include <queue>

using namespace std;

int main() {
	int n;
	queue<int> q;

	cin >> n;

	for (int i = 1; i <= n; i++)
		q.push(i);

	while (q.size() > 1) {
		q.pop();
		q.push(q.front());
		q.pop();
	}

	cout << q.front();

	return 0;
}