첨에 뭔가 복잡해보이길래 나머지 연산하는건가..? 하다가
방금 푼 카드 2 문제랑 다를 게 없는 걸 깨달았다!
k번째 사람이면 pop
하면서 출력,
아니라면 front
값으로 저장해뒀다가 pop
한 다음 뒷 줄로 push
해 주면 된다.
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n, k, num;
queue<int> q;
cin >> n >> k;
for (int i = 1; i <= n; i++) {
q.push(i);
}
int cnt = 1;
cout << "<";
while (1) {
if (cnt < k) {
num = q.front();
q.pop();
q.push(num);
cnt++;
}
else {
cout << q.front();
q.pop();
if (!q.empty()) {
cout << ", ";
cnt = 1;
}
else break;
}
}
cout << ">";
return 0;
}