알고리즘/BOJ
[BOJ] 11866. 요세푸스 문제 0
hyerann
2020. 3. 25. 00:14
vector에 1~N까지의 수를 넣어두고, 해당 순서의 사람을 출력하고 지우는 것을 반복하였습니다.
https://www.acmicpc.net/problem/11866
#include <iostream>
#include <vector>
using namespace std;
vector<int> numbers;
int main() {
cin.tie(0); cout.tie(0);
ios::sync_with_stdio(0);
int N, K;
cin >> N >> K;
for(int i=1; i<=N; i++) {
numbers.emplace_back(i);
}
int idx = 0;
cout << '<';
while(1) {
if(numbers.size() == 1) {
break;
}
idx += K-1;
while(idx >= numbers.size()) {
idx -= numbers.size();
}
cout << numbers[idx] << ", ";
numbers.erase(numbers.begin()+idx);
}
cout << numbers[0] << '>';
return 0;
}