출처 : https://www.acmicpc.net/problem/11866
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
고려사항
- n = 1 일 때를 예외처리 해주거나
출력문 조건을 else if가 아닌 if 로 구현해 보자.....
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n, k, idx = 0;
queue<int> q, ans;
cin>>n>>k;
if(n == 1){
cout<<"<1>";
return 0;
}
for(int i=1;i<=n;++i){
q.push(i);
}
--k;
while(idx < n){
for(int i=0;i<k;++i){
q.push(q.front());
q.pop();
}
ans.push(q.front());
q.pop();
++idx;
}
for(int i=0;i<n;++i){
if(i == 0){
cout<<"<"<<ans.front()<<", ";
}else if (i == n-1){
cout<<ans.front()<<">";
}else{
cout<<ans.front()<<", ";
}
ans.pop();
}
return 0;
}
'BOJ 백준 > 기타' 카테고리의 다른 글
| 백준 05430 - AC (0) | 2020.11.05 |
|---|---|
| 백준 01021 - 회전하는 큐 (0) | 2020.11.05 |
| 백준 01966 - 프린터 큐 (0) | 2020.11.03 |
| 백준 18258 - 큐 2 (0) | 2020.10.31 |
| 백준 01874 - 스택 수열 (0) | 2020.10.31 |
