생각하기
큐는 순환시 이용하는 자료구조
1부터 N까지 큐에 넣는다
(큐가 빌 때까지)
K번째 숫자라면 pop하고 아니면 pop 시킨후 다시 push 시킨다
#include <iostream>
#include <vector>
#include <map>
#include <stack>
#include <queue>
#include <string>
#include <algorithm>
using namespace std;
#define endl '\n'
#define MAX 1000000
int N, K;
int alpha[26];
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0), cout.tie(0);
cin>>N>>K;
queue<int> q;
vector<int> ans;
for(int i=1; i<=N; i++){
q.push(i);
}
int count = 0;
while(!q.empty()){
count++;
if(count == K){
ans.push_back(q.front());
q.pop();
count = 0;
}
else{
q.push(q.front());
q.pop();
}
}
cout<<'<';
for(int i=0; i<N; i++){
if(i==N-1){
cout<<ans[i]<<'>'<<endl;
}
else{
cout<<ans[i]<<", ";
}
}
}
'알고리즘 > Stack & Queue & Deck' 카테고리의 다른 글
프로그래머스 - 고득점 킷 : 기능개발 (0) | 2022.03.25 |
---|---|
[Stack] 백준 1935번 - 후위 표기식2 (0) | 2021.02.26 |
[Stack] 백준 9012번 - 괄호 (0) | 2021.02.25 |