문제
풀이
특정 집단에서 k번째 인원을 아무도 남지 않을 때까지 반복해서 제거하고 이 제거되는 순서대로 해당 인원의 번호를 출력하면 된다. 이 문제는 큐를 통해 쉽게 해결할 수 있다.
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n, k;
queue<int> q;
cin >> n >> k;
for (int i = 1; i <= n; i++)
q.push(i);
cout << "<";
while (q.size() > 0) {
for (int i = 0; i < k - 1; i++) {
q.push(q.front());
q.pop();
}
if (q.size() > 1) cout << q.front() << ", ";
else cout << q.front() << ">";
q.pop();
}
return 0;
}
'백준 > 기타' 카테고리의 다른 글
2164번: 카드2 [C++] (0) | 2023.04.10 |
---|---|
1920번: 수 찾기 [C++] (0) | 2023.04.10 |
7568번: 덩치 [C++] (0) | 2023.04.06 |
11050번: 이항 계수 1 [C++] (0) | 2023.04.06 |
2775번: 부녀회장이 될테야 [C++] (0) | 2023.04.06 |