알고리즘
[C++] 백준 11866번 조세퍼스 문제 0
J3SUNG
2019. 9. 8. 00:23
728x90
원형 큐 문제입니다.
큐에 값을 전부 넣고
K - 1까지의 값을 맨뒤로 넣습니다.
그렇게 되면 K번째의 수를 찾을 수 있고
K번째 수를 pop해줍니다.
이를 반복합니다.
#include <iostream>
#include <queue>
using namespace std;
int main(int argc, char *argv[])
{
int N, K;
queue<int> q;
cin >> N >> K;
for (int i = 1; N >= i; i++) {
q.push(i);
}
cout << "<";
while (!q.empty()) {
for (int i = 0; i < K - 1; i++) {
q.push(q.front());
q.pop();
}
cout << q.front();
q.pop();
if (!q.empty()) {
cout << ", ";
}
}
cout << ">" << endl;
return 0;
}