https://www.acmicpc.net/problem/11866
큐를 활용한 간단한 문제다. 1에서 N까지의 수를 큐에다가 먼저 넣어놓고, K-1번 큐 맨 앞에 있는 수를 다시 push 해준 다음, K번째는 pop시켜 vector에 넣어놓고 큐가 다 비워지면 vector를 출력하는 방식으로 풀었다. 사실 맨 첫번째 제출때 틀렸습니다가 떠서 당황했는데 알고보니 그냥 출력 형식을 무시하고 숫자만 출력해서 오답이 나왔다. 다음부터는 문제를 잘 읽고 풀어야겠다.
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
int main() {
cin.tie(NULL);
cout.tie(NULL);
ios::sync_with_stdio(false);
int N,K;
cin >> N >> K;
queue<int> q;
vector<int> v;
for (int i=0; i<N; i++) q.push(i+1);
while(!q.empty()) {
for(int i=0; i<K-1; i++) {
q.push(q.front());
q.pop();
}
v.push_back(q.front());
q.pop();
}
cout << '<';
for (int i=0; i<v.size()-1; i++) cout << v[i] << ", ";
cout << v.back() << ">\n";
return 0;
}
728x90
'Algorithm > BOJ' 카테고리의 다른 글
[BOJ] #1302 베스트셀러 (0) | 2023.12.20 |
---|---|
[BOJ] #2346 풍선 터뜨리기 (0) | 2023.11.02 |
[BOJ] #1269 대칭 차집합 (0) | 2023.10.30 |
[BOJ] #1620 나는야 포켓몬 마스터 이다솜 (0) | 2023.10.30 |
[BOJ] #10816 숫자카드2 (0) | 2023.10.27 |