백준 문제풀이
1158번 : 요세푸스 문제
하다블
2022. 3. 31. 18:55
반응형
문제는 다음과 같습니다.
https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
풀이 코드는 다음과 같습니다.
#include <iostream>
#include <queue>
using namespace std;
int main() {
int N, K;
cin >> N >> K;
queue<int> C;
for (int i{0}; i < N; i++) {
C.push(i + 1);
}
cout << "<";
while (C.size() - 1) {
for (int i{0}; i < K - 1; i++) {
C.push(C.front());
C.pop();
}
cout << C.front() << ", ";
C.pop();
}
cout << C.front() << ">";
return 0;
}
큐를 직접 구현하지 않아도 STL을 사용하여 큐를 사용할 수 있으며, 주어진 만큼 돌려 맨 앞에 값을 빼는 방법으로 구현할 수 있습니다.
반응형