본문으로 바로가기

백준 11866 - 요세푸스 문제 0

category BOJ 백준/기타 2020. 11. 1. 04:00

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

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

 

고려사항

- n = 1 일 때를 예외처리 해주거나

출력문 조건을 else if가 아닌 if 로 구현해 보자.....

 

#include <iostream>
#include <queue>
using namespace std;

int main() {
    int n, k, idx = 0;
    queue<int> q, ans;

    cin>>n>>k;

    if(n == 1){
        cout<<"<1>";
        return 0;
    }

    for(int i=1;i<=n;++i){
        q.push(i);
    }

    --k;
    while(idx < n){
        for(int i=0;i<k;++i){
            q.push(q.front());
            q.pop();
        }
        ans.push(q.front());
        q.pop();
        ++idx;
    }

    for(int i=0;i<n;++i){
        if(i == 0){
            cout<<"<"<<ans.front()<<", ";
        }else if (i == n-1){
            cout<<ans.front()<<">";
        }else{
            cout<<ans.front()<<", ";
        }
        ans.pop();
    }

    return 0;
}

'BOJ 백준 > 기타' 카테고리의 다른 글

백준 05430 - AC  (0) 2020.11.05
백준 01021 - 회전하는 큐  (0) 2020.11.05
백준 01966 - 프린터 큐  (0) 2020.11.03
백준 18258 - 큐 2  (0) 2020.10.31
백준 01874 - 스택 수열  (0) 2020.10.31