원형큐 느낌으로 생각하면 편하다. 대충 알고리즘은 이렇다.
1. que가 empty될 떄까지 돌린다.
2. 각 수행에서 k-1 번 만큼 push(top), pop한다.
3. k-1번까지 pop을 돌렸으니 이번이 k번째이다. 그러므로 pop
#include <iostream>
#include <vector>
#include <algorithm>
#include <string>
#include<queue>
using namespace std;
int main() {
int n, k;
queue<int> que;
cin >> n >> k;
for (int i = 1; i <= n; i++)
que.push(i);
cout << '<';
while (!que.empty()) {
for (int i = 0; i < k -1; i++) {
que.push(que.front());
que.pop();
}
cout << que.front();
que.pop();
if (!que.empty())
cout << ", ";
else
cout << '>';
}
return 0;
}