Notice
Recent Posts
Recent Comments
Link
250x250
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
Tags
- 동적계획법과최단거리역추적
- cos pro 1급
- django
- 코딩테스트
- 코테
- DFS
- cos
- 코드품앗이
- 알고리즘
- Python
- 안드로이드스튜디오
- Algorithm
- Vue
- DART
- AndroidStudio
- cos pro
- codingtest
- issue
- 백준
- 동적계획법
- 분할정복
- 안드로이드
- Flutter
- vuejs
- C++
- android
- 개발
- DFS와BFS
- BAEKJOON
- 파이썬
Archives
- Today
- Total
Development Artist
[Baekjoon, C++] 11866번 : 요세푸스 문제 0 본문
728x90
반응형
백준 단계별 풀기에서 큐,덱 세 번째 문제이다.
링크는 아래와 같다.
1. 원을 이룬다는 것은 Circular Queue를 생각하면 된다. 논리상 구조는 실질적으로 인덱스 0과 7이 붙어 있지는 않지만 붙어있는 것처럼 간주하겠다는 것이다.
2. 요세푸스 문제를 예로, N=3 이라면 3, 6, 9, 12 의 순서대로 정수값들을 뺀다. 그렇다면, queue의 front값을 읽어 해당 순서를 제외하고는 다시 queue에 넣어주면 된다. 3 6 9 번째 숫자들은 출력을 해주고 pop을 통해 빼준다. 이것을 반복하면 결국엔 큐에 아무것도 남지 않게 된다.
#include<iostream>
#include<queue>
using namespace std;
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0);
int numOfSeq;
int numOfExit;
queue<int> que;
cin >> numOfSeq;
cin >> numOfExit;
for (int i = 1; i <= numOfSeq; i++) {
que.push(i);
}
cout << "<";
while (que.size() > 0) {
for (int i = 0; i < numOfExit - 1; i++) {
que.push(que.front());
que.pop();
}
cout << que.front();
que.pop();
if (!que.empty()) {
cout << ", ";
}
}
cout << ">";
return 0;
}
728x90
반응형
'Algorithm > Baekjoon' 카테고리의 다른 글
[Baekjoon, C++] 10866번 : 덱 (0) | 2021.01.16 |
---|---|
[Baekjoon, C++] 1966번 : 프린터 큐 (0) | 2021.01.15 |
[Baekjoon, C++] 2164번 : 카드2 (0) | 2021.01.13 |
[Beakjoon, C++] 18258번 : 큐2 (0) | 2021.01.12 |
[Beakjoon, C++] 17298번 : 오큰수 (0) | 2021.01.10 |
Comments