728x90
반응형
https://www.acmicpc.net/problem/11866
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
#include <iostream>
#include <queue>
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, k;
cin >> n >> k;
queue<int> q;
for(int i = 1; i <= n; i++){
q.push(i);
}
cout << "<";
while(true){
if(q.empty()) break;
for(int i = 1; i <= k; i++){
if(i != k){
int t = q.front();
q.pop();
q.push(t);
}
else{
cout << q.front();
q.pop();
if(!q.empty()) cout << ", ";
}
}
}
cout << ">";
return 0;
}
원형 큐 문제이다.
1. N, K를 받음
2. 1~N을 queue에 담고
3. 큐가 빌 때까지 while문을 돌며
for i = 1~k 하면서
만약 i가 k가 아니라면,
queue의 맨 첫 요소를 빼고 다시 넣는다.
만약 i가 k라면,
queue의 맨 첫 요소를 빼고 출력한다.
728x90
반응형
'Algorithm > BAEKJOON' 카테고리의 다른 글
[BOJ] 1181번 단어 정렬 (C++) (0) | 2021.12.26 |
---|---|
[BOJ] 9012번 괄호 (C++) (0) | 2021.12.25 |
[BOJ] 2623번 음악프로그램 (C++) (0) | 2021.12.24 |
[BOJ] 11724번 연결 요소의 개수 (C++) (0) | 2021.12.24 |
[BOJ] 1766번 문제집 (C++) (0) | 2021.12.24 |