풀이
C로 풀기에는 난이도에 비해 번거로움이 많아 C++로 풀이했다.
기본적인 pop, push, empty, front를 사용하는 문제이기 때문에 C++에 이미 구현된 queue 라이브러리를 사용하면 된다.
- 순서(cnt)가 K로 나누었을 때 나머지가 존재하면, queue의 앞에있는 수를 제거하고, 뒤에 추가해준다.
- 아니라면, queue의 앞에있는 수를 출력해주고, pop하여, 마지막 요소인지 아닌지에 따라 출력 형식을 달리해준다.
소스코드
#include <iostream>
#include <queue>
using namespace std;
int main(){
int N, K, cnt = 1;
cin >> N >> K;
queue<int> Q;
for (int i = 1; i <= N; i++)
Q.push(i);
cout << "<";
while (!Q.empty()){
if (cnt % K){
int n = Q.front();
Q.pop();
Q.push(n);
}else {
cout << Q.front();
Q.pop();
cout << (Q.empty() ? ">" : ", ");
}
cnt++;
}
}
출처
'PS > Baekjoon Online Judge' 카테고리의 다른 글
[백준 2775] 부녀회장이 될테야 [C] (0) | 2021.07.25 |
---|---|
[백준 2231] 분해합 [C] (0) | 2021.07.25 |
[백준 9663] N-Queen [C] (0) | 2021.07.24 |
[백준 2292] 벌집 [C] (0) | 2021.07.23 |
[백준 1712] 손익분기점 [C] (0) | 2021.07.23 |