문제 풀이/백준(BOJ)
[C++] 백준 1158번 : 요세푸스 문제
희조당
2021. 9. 24. 16:57
728x90
https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
문제 풀이
https://codinghejow.tistory.com/91와 같은 문제이다!
느낀 점
이번에 코테 준비를 하면서 다시 풀어봤던 문제이다. 이번에 한번 정리함으로써 큐에 대한 이해도가 확실하게 향상된 것 같다.
코드
#include <iostream>
#include <queue>
using namespace std;
int n, k;
queue<int> q;
void func(int n, int k) {
for (int i = 1; i <= n;i++) {
q.push(i);
}
cout << "<";
while (!q.empty()) {
for (int i = 0; i < k - 1;i++) {
q.push(q.front());
q.pop();
}
cout << q.front();
q.pop();
if (!q.empty()) {
cout << ", ";
}
}
cout << ">" << "\n";
}
int main() {
ios::sync_with_stdio(0);
cin.tie(0);
cin >> n >> k;
func(n, k);
}