https://www.acmicpc.net/problem/1158
보자마자 queue를 이용해야겠다고 생각이 들었던 문제
넣고 2번 빼고 뺄때마다 다시 넣고 뽑고 출력하고를 반복하면 풀린다.
#include<iostream>
#include<queue>
#include<vector>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
queue<int> q;
for (int i = 1; i <= n; i++) {
q.push(i);
}
vector<int> v;
while (!q.empty()) {
int curr;
for (int i = 1; i < k; i++) {
curr = q.front();
q.pop();
q.push(curr);
}
curr = q.front();
q.pop();
v.push_back(curr);
}
cout << "<";
for (int i = 0; i < v.size(); i++)
{
if (i == v.size() - 1)
cout << v[i];
else
cout << v[i] << ", ";
}
cout << ">";
return 0;
}
'코딩테스트_백준풀이' 카테고리의 다른 글
주짓수 #15724 c++ 풀이 (1) | 2023.11.20 |
---|---|
포도주 시식 #2156 c++ 풀이 (0) | 2023.11.15 |
2Xn 타일링 #11726 c++ 풀이 (0) | 2023.11.10 |
BABBA #9625 c++ 풀이 (0) | 2023.11.10 |
스티커 #9465 c++ 풀이 (0) | 2023.11.08 |