<문제>
<Code>
#include <iostream>
#include <string>
#include <queue>
using namespace std;
int main(){
int n,k;
int temp;
queue <int> q;
cin>>n>>k;
//일단 큐에 다 넣어줌.
for(int i=1; i<=n; i++){
q.push(i);
}
cout<<"<";
while(1){
for(int i=0;i<k-1; ++i){
temp=q.front();
q.pop();
q.push(temp);
}
cout<<q.front();
q.pop();
if(!q.size()){
break;
}
cout<<", ";
}
cout<<">";
return 0;
}
<Comment>
1. 일단 큐에 다 넣어줌.
2. k-1번 만큼 pop해서 맨 뒤로 push
3. 첫 번째 원소를 pop
*출력할 때 빈칸 안써서 한번에 못맞음 출력 결과 꼼꼼히 보자~!~!~!
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
'Problem Solving > 백준' 카테고리의 다른 글
[백준-1874] 스택 수열 (0) | 2021.03.24 |
---|---|
[백준-10773] 제로 (0) | 2021.03.24 |
[백준-10845] 큐 (0) | 2021.03.17 |
[백준-10828] 스택 (0) | 2021.03.17 |
[백준-9012] 괄호 (0) | 2021.02.05 |