https://www.acmicpc.net/problem/1158
#include <iostream>
#include <queue>
using namespace std;
int main(void){
queue<int> q;
int n, k, cnt=0;
cin>>n>>k;
for(int i=1;i<=n;i++){
q.push(i);
}
cout<<"<";
while(q.size()>1){
for(int i=0;i<k-1;i++){
q.push(q.front());
q.pop();
}
cout<<q.front()<<", ";
q.pop();
}
cout<<q.front();
cout<<">";
}
- rotate 함수로 구현하려고 했으나 직접 front원소를 push하는 방법을 적용했다
- (k-1)만큼 앞 원소를 뒤로 보내주면 맨 앞원소가 k번째 원소가 되므로 출력한다.
- 이 작업을 queue 내부원소가 하나만 남을때까지 진행하고, 마지막 원소는 따로 출력
'자기개발👨💻 > 코딩 알고리즘' 카테고리의 다른 글
[C++] 백준 1436 영화감독 숌 (0) | 2022.03.23 |
---|---|
[C++] 백준 1018 체스판 다시 칠하기 (0) | 2022.03.23 |
[C++] 백준 11279최대힙, 1927최소힙 (0) | 2022.03.18 |
[C++] 백준 11651 // <vector><map> (0) | 2022.03.16 |
[C++] 백준 1302 베스트셀러 // <map> (0) | 2022.03.16 |
[C++] 백준 9012 괄호 (알고스터디 E조) (0) | 2022.03.15 |