https://www.acmicpc.net/problem/2164
위에 있는 카드를 버리고 그 다음 카드를 맨 뒤로 보냈을 때 제일 마지막에 남는 카드 구하기
pop과 push를 적절하게 사용하면 되는 문제
#include <iostream>
#include <queue>
using namespace std;
int main() {
int num;
queue<int> q;
cin >> num;
for (int i = 1; i <= num; i++) q.push(i);
while (q.size() != 1) {
q.pop();
q.push(q.front());
q.pop();
}
cout << q.front();
return 0;
}