스터디/알고리즘
[백준 1158] 요세푸스 문제
덩이
2022. 1. 6. 00:43
#include <iostream>
#include <queue>
using namespace std;
int main(){
int N, K;
queue<int>circle;
cin >> N >> K;
for(int i=0; i<N; i++)
circle.push(i+1);
cout << "<";
while(circle.size()-1){
for(int i=0; i<K-1; i++){
circle.push(circle.front());
circle.pop();
}
cout << circle.front() << ",";
circle.pop();
}
cout << circle.front() << ">";
return 0;
}
처음에는 원형 큐를 생각하고 접근해야 하나 싶었는데
큐를 사용해서 직접 K-1번씩 큐에서 숫자를 빼내어 뒤로 보내고 K번쩨 숫자를 꺼내어 가는 식으로 구현함