Algorithm/BOJ

[BOJ] #11866 요세푸스 문제0

jHoon0223 2023. 11. 2. 13:11

https://www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net


큐를 활용한 간단한 문제다. 1에서 N까지의 수를 큐에다가 먼저 넣어놓고, K-1번 큐 맨 앞에 있는 수를 다시 push 해준 다음, K번째는 pop시켜 vector에 넣어놓고 큐가 다 비워지면 vector를 출력하는 방식으로 풀었다. 사실 맨 첫번째 제출때 틀렸습니다가 떠서 당황했는데 알고보니 그냥 출력 형식을 무시하고 숫자만 출력해서 오답이 나왔다. 다음부터는 문제를 잘 읽고 풀어야겠다.

#include <iostream>
#include <vector>
#include <queue>

using namespace std;

int main() {
    cin.tie(NULL);
    cout.tie(NULL);
    ios::sync_with_stdio(false);

    int N,K;
    cin >> N >> K;

    queue<int> q;
    vector<int> v;

    for (int i=0; i<N; i++) q.push(i+1);

    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.back() << ">\n";

    return 0;
}
728x90

'Algorithm > BOJ' 카테고리의 다른 글

[BOJ] #1302 베스트셀러  (0) 2023.12.20
[BOJ] #2346 풍선 터뜨리기  (0) 2023.11.02
[BOJ] #1269 대칭 차집합  (0) 2023.10.30
[BOJ] #1620 나는야 포켓몬 마스터 이다솜  (0) 2023.10.30
[BOJ] #10816 숫자카드2  (0) 2023.10.27