개발 노트/백준, 프로그래머스 풀이
[백준 11866/c++] 요세푸스 문제 0
tokkiC
2022. 7. 14. 23:11
큐를 사용해서 k-1번만큼 front를 push하고 front를 pop 돌린 후
맨 앞의 수를 출력 후 pop한다
이것을 큐가 빌때까지 반복하면 끝인 문제!
https://www.acmicpc.net/problem/11866
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
#include <bits/stdc++.h>
using namespace std;
int main() {
int n, k;
queue<int> q;
cin >> n >> k;
for (int i = 1; i <= n; i++)
{
q.push(i);
}
cout << "<";
while (q.size() > 0) {
if(q.size() != 1)
{
for(int i = 0; i < k - 1; i++)
{
q.push(q.front());
q.pop();
}
cout << q.front() << ", ";
}
else
{
for(int i = 0; i < k - 1; i++)
{
q.push(q.front());
q.pop();
}
cout << q.front();
}
q.pop();
}
cout << ">" << "\n";
return 0;
}