<< 문제 >>
https://www.acmicpc.net/problem/11866
잘 생각해보면
k-1개 만큼 pop
-> 다시 Queue에 push
-> front를 출력
이 과정을 1개가 남을때까지 반복하면 되는 문제
<< 코드 >>
#include <iostream>
#include <queue>
using namespace std;
void josephus(int n, int k){
queue<int> q;
for(int i = 1; i <= n; i++){
q.push(i);
}
while(q.size() != 1){
for(int i =1; i<k; i++){
q.push(q.front());
q.pop();
}
cout << q.front() << ',' << ' ';
q.pop();
}
cout << q.front();
}
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
int n, k;
cin >> n >> k;
cout << '<';
josephus(n, k);
cout << '>';
}
< 백준 BaekJoon : 2346번 풍선 터뜨리기> C++ (0) | 2024.01.23 |
---|---|
< 백준 BaekJoon : 28279번 덱 2> C++ (0) | 2024.01.23 |
< 백준 BaekJoon : 2164번 카드 2> C++ (0) | 2024.01.23 |
< 백준 BaekJoon : 18258번 큐 2> C++ (0) | 2024.01.23 |
< 백준 BaekJoon : 12789번 도키도키 간식드리미> C++ (0) | 2024.01.23 |
댓글 영역