3번 문제
11866번: 요세푸스 문제 0
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)
www.acmicpc.net
내가 풀이한 답
k번째 까지 원소를 뒤로 넣은 다음 k번째 원소를 제거하는 행위를 원소가 하나 남을 때까지 이 과정을 반복하였다.
//#include <bits/stdc++.h> #include <iostream> #include <queue> #include <vector> using namespace std; int main() { //freopen("input.txt", "rt", stdin); queue<int> q; vector<int> v; int n, k, i; cin >> n >> k; for(i=1; i<=n; i++){ q.push(i); } while(true){ if(q.size()==1) { v.push_back(q.front()); break; } for(i=1; i<k; i++){ q.push(q.front()); q.pop(); } v.push_back(q.front()); q.pop(); } cout << "<"; for(i=0; i<v.size()-1; i++){ cout << v[i] << ", "; } cout << v[v.size()-1] << ">"; return 0; }
'알고리즘 & 자료구조 > 스택, 큐' 카테고리의 다른 글
4. 프린터 큐(Queue) (0) | 2020.11.01 |
---|---|
2. 카드2(Queue) (0) | 2020.10.31 |
1. K진수 출력(Stack) (0) | 2020.10.24 |