https://www.acmicpc.net/problem/1158
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
코드 설명
큐 자료구조 연습 문제였다. 큐에 전부 넣어준 후 2번은 빼고 뒤에 다시넣고 3번째 차례일때 출력하고 빼주는 간단한 문제였다.
소스코드
#include<iostream>
#include<vector>
#include<queue>
using namespace std;
int main() {
int n, k;
cin >> n >> k;
queue<int> q;
for (int i = 1; i <= n; i++) {
q.push(i);
}
cout << "<";
while (!q.empty()) {
for (int i = 0; i < k - 1; i++) {
int temp = q.front();
q.pop();
q.push(temp);
}
if (q.size() == 1) {
cout << q.front() << ">";
q.pop();
}
else {
cout << q.front() << ", ";
q.pop();
}
}
return 0;
}
'알고리즘 공부 > 백준' 카테고리의 다른 글
[백준] 단어 정렬 (1181/ C++) (0) | 2021.05.29 |
---|---|
[백준] 14425 문자열 집합(c++) (0) | 2021.05.18 |
[백준] 9663 N-Queen (C++) (0) | 2021.05.17 |
[백준] 9935번 문자열 폭발 C++ (0) | 2021.05.16 |
[백준] 미로탐색(C++/2178번) (0) | 2021.05.06 |