728x90
문제 11866번
https://www.acmicpc.net/problem/11866
큐에 1부터 n까지의 수를 넣고 k번째가 되기 전인 k-1까지 반복하여 숫자를 뒤로 넣고 앞 숫자는 버려준다. k번째가 되면 해당 값을 출력해주고 만약 그 수가 마지막 수라면 ,를 출력해준다. 그리고 마지막에 pop을 통해 출력한 숫자를 버려준다.
#include <iostream>
#include <queue>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
queue <int> q;
for (int i = 1; i <= n; i++) {
q.push(i);
}
cout << "<";
while (q.size() > 0) {
for (int i = 0; i < k - 1; i++) { //k번째 되기 전까지
q.push(q.front());
q.pop();
}
cout << q.front(); //k번째
if (q.size() != 1) { //큐에 하나만 들어있는 것이 아니라면
cout << ", ";
}
q.pop();
}
cout << ">";
return 0;
}
728x90
'백준 > C++' 카테고리의 다른 글
[C++] 백준 2346번 - 풍선 터뜨리기 (0) | 2024.06.22 |
---|---|
[C++] 백준 28279번 - 덱 2 (2) | 2024.06.21 |
[C++] 백준 2164번 - 카드 2 (0) | 2024.06.19 |
[C++] 백준 18258번 - 큐 2 (1) | 2024.06.17 |
[C++] 백준 12789번 - 도키도키 간식드리미 (0) | 2024.06.17 |