#include <iostream>
#include <deque>
using namespace std;
int main() {
ios::sync_with_stdio(0);
int N;
cin >> N;
deque<int> dq;
for(int i=N; i>0; i--) {
dq.push_front(i);
}
int j=1;
while(1) {
if(dq.size()==1) { break; }
if(j % 2 == 1) {
dq.pop_front();
j++;
} else if(j % 2 != 1) {
int tmp = dq.front();
dq.pop_front();
dq.push_back(tmp);
j++;
}
}
cout << dq.front() << '\n';
return 0;
}
단순한 deque문제
i로 언제 카드를 빼고 언제 카드를 아래로 옮겨야 하는지 체크
tmp에 front의 원소를 저장시켜 가장 아래로 빼줌
deque에 대해서 한 번 정리해야겠다.