알고리즘/백준(BOJ)
백준 - 1158 요세푸스 문제
시나모온
2020. 8. 20. 01:22
문제 링크입니다 : https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main() {
int K, N;
cin >> K >> N;
queue<int> q;
vector<int> result;
for(int i = 1; i <= K; i++) {
q.push(i);
}
int temp = 0;
while(!q.empty()) {
if(++temp == N) {
result.push_back(q.front());
q.pop();
temp = 0;
} else {
q.push(q.front());
q.pop();
}
}
cout << '<';
for(int i = 0; i < result.size() - 1; i++) {
cout << result[i] << ", ";
}
cout << result.back();
cout << '>';
return 0;
}
개발 환경 : vscode
지적, 조언, 질문 환영입니다! 댓글 남겨주세요~