반응형
문제 해결 알고리즘
1. 큐(q)에 1부터 N까지의 숫자들을 순서대로 push해준다.
2. 큐(q)안에 숫자들이 모두 없어질 때까지
K번 옆으로 갈 때 과정에서 지나치는 숫자들은 큐의 맨 앞에서 맨 뒤로 보내고, K번 가서 도착한 그 숫자는 출력하고 큐(q)에서 pop한다.
여기서 큐의 사이즈가 1이 아니면 뒤에 쉼표(,)를 출력한 후 pop한다.
소스 코드
#include <bits/stdc++.h>
using namespace std;
int main(){
int N, K; cin >> N >> K;
queue<int> q;
cout << '<';
for(int i=1;i<=N;i++){
q.push(i);
}
while(!q.empty()){
for(int i=0;i<K-1;i++){
q.push(q.front());
q.pop();
}
if(q.size() == 1){
cout << q.front();
q.pop();
}
else {
cout << q.front() << ", ";
q.pop();
}
}
cout << '>';
}
반응형
'알고리즘 문제 해결 > BOJ' 카테고리의 다른 글
[BFS] BOJ 7576 토마토 (0) | 2020.12.02 |
---|---|
[DP] BOJ 1010 다리 놓기 (0) | 2020.11.28 |
[LIS] BOJ 14002 가장 긴 증가하는 부분 수열 4 (0) | 2020.08.08 |
[자료구조, 리스트] BOJ 5397 키로거 (0) | 2020.08.06 |
[BFS] BOJ 17086 아기 상어 2 (0) | 2020.07.25 |