본문 바로가기

문제풀이

[백준] 2164번 카드2

선입선출이고 앞뒤 데이터 자유롭게 반환이 가능한 큐를 사용했다!

#include <iostream>
#include <queue>
using namespace std;
//큐를 사용하면 될 것 같다!
int main() {
	int n;
	queue<int>arr = {};
	cin >> n;
	for (int i = 1; i <=n; i++) {
		arr.push(i);
	}
	while (arr.size()!=1) { //큐 사이즈가 1이 될때까지 반복
		arr.pop(); //제일 위의 카드 버리기
		arr.push(arr.front()); //제일 위의 카드값을 제일 밑에 두기
		arr.pop(); //제일 위의 카드 버리기
	}
	cout << arr.front();
	return 0;
}