이 문제는 앞서 해결한 요세푸스 0 문제를 응용해서 해결하면 쉽게 해결할 수 있다. 첫 번째 케이스에서 바로 pop을 해주는 부분만을 고려한다면 간단하게 해결할 수 있어서 코드로 대체하겠다.
# include "iostream"
# include "queue"
using namespace std;
int main(void){
long long N;
cin >> N;
queue<long long> arr;
for (int i = 1; i <= N;i ++){
arr.push(i);
}
if (N != 1){
arr.pop();
}
while(arr.size() != 1){
for (int i = 0; i < 1; i++) {
arr.push(arr.front());
arr.pop();
}
arr.pop();
}
cout << arr.front();
}