https://www.acmicpc.net/problem/11866
큐를 사용하는 문제
순서대로 K번째 사람을 제거하고 N명의 사람들이 모두 제거될 때까지 진행해야함.
출력양식이 < 3, ~, >인것에 주의해서 마지막 숫자를 출력할 때는 다르게 조건을 넣어줘야함.
#include <iostream>
#include <queue>
#include <string>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
queue<int> q;
string result = "<";
for (int i = 1; i <= n; i++) {
q.push(i);
}
while (!q.empty()) {
if (q.size() == 1) {
result += to_string(q.front()) + ">";
q.pop();
break;
}
int before;
for (int i = 1; i <= k; i++) {
before = q.front();
q.pop();
if(i!=k) q.push(before);
}
result += to_string(before) + ", ";
}
cout << result;
return 0;
}