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;
}
'알고리즘 > BOJ' 카테고리의 다른 글
[BOJ] 10814. 나이순 정렬 (0) | 2020.03.25 |
---|---|
[BOJ] 1181. 단어 정렬 (0) | 2020.03.25 |
[BOJ] 3052. 나머지 (vector 중복 제거) (0) | 2019.07.03 |
[BOJ] 10989. 수 정렬하기 3 (Counting Sort) (0) | 2019.04.28 |
[BOJ] 2750. 수 정렬하기 (Bubble Sort) (0) | 2019.04.27 |
댓글