본문 바로가기
Algorithm/Baekjoon

[백준/BOJ] 11866번 - 요세푸스 문제 0 (C++)

by shine-jung 2021. 7. 12.
반응형

문제 링크

 

코딩하기 전 생각하기

/*
큐를 사용하자.
큐가 empty가 될 때까지 반복한다.
    k-1번 만큼 맨 앞의 숫자를 pop하고 맨 뒤에 push한다.
    맨 앞의 숫자를 pop하고 answer 벡터에 저장한다.
answer 벡터를 출력한다.
*/

 


 

코드

#include <iostream>
#include <bits/stdc++.h>
using namespace std;

int main() {
    int n, k;
    queue<int> q;
    vector<int> v;
    cin >> n >> k;
    for ( int i = 1; i <= n; i++ ) {
        q.push(i);
    }
    while ( !q.empty() ) {
        for ( int i = 0; i < k - 1; i++ ) {
            q.push(q.front());
            q.pop();
        }
        v.push_back(q.front());
        q.pop();
    }
    cout << "<";
    for ( int i = 0; i < v.size() - 1; i++ ) {
        cout << v[i] << ", ";
    }
    cout << v[v.size() - 1] << ">";
}

 


 

느낀점

 

확실히 알고리즘 문제에 자료구조를 쓰니까 더 재미있는거 같다.

아직까지 쉬워서 그렇겠지?

 

(주의) 기록용으로 작성한 글입니다. 코드가 허접하거나 알고리즘의 효율이 낮을 수 있습니다.

댓글 환영합니다!

반응형

댓글