Problem Solving/Baekjoon

[백준 / BOJ] 11866 요세푸스 문제 0

msmn 2021. 3. 16. 01:43
728x90

알고리즘 분류: 자료구조, 큐

문제 링크: www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 1,000)

www.acmicpc.net

  • deque를 활용한 풀이
#include <unordered_map>
#include <unordered_set>
#include <algorithm>
#include <iostream>
#include <climits>
#include <cstring>
#include <iomanip>
#include <bitset>
#include <string>
#include <vector>
#include <cmath>
#include <deque>
#include <queue>
#include <stack>
#include <list>
#include <map>
#include <set>

#define ll long long
#define INF 1e9

using namespace std;

//https://www.acmicpc.net/problem/11866 요세푸스 문제 0

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);
    cout.tie(0);
    
    deque<int> dq;
    int n, k;
    cin >> n >> k;
    for(int i=1; i<=n; i++) dq.push_back(i);
    cout << "<";
    
    while(dq.size()) {
        for(int i=0; i<k-1; i++) {
            int front = dq.front();
            dq.pop_front();
            dq.push_back(front);
        }
        cout << dq.front();
        dq.pop_front();
        if(dq.empty()) cout << ">";
        else cout << ", ";
    }
    
    return 0;
}

 

728x90