No Rules Rules

요세푸스 문제 (feat. 백준, 1158번) 본문

생활/코테

요세푸스 문제 (feat. 백준, 1158번)

개발하는 완두콩 2022. 9. 15. 18:13
728x90
반응형

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

 

1158번: 요세푸스 문제

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

www.acmicpc.net

 

반응형

 

// woohyeon.kim
// kim519620.tistory.com
#include <iostream>
#include <queue>
using namespace std;
int main(){
    ios::sync_with_stdio(false), cin.tie(NULL);
    register int N, K;
    bool arr[5001]{false};
    queue<int> ans;
    cin >> N >> K;
    for(register int n = 1; n <= N; ++n)
        arr[n] = true;
    register int pos = 0, index = 0;
    while(ans.size() != N){
        index = 0;
        while(index != K){
            if(pos == N)
                pos = 0;
            if(arr[++pos])
                ++index;
        }
        ans.push(pos);
        arr[pos] = false;
    }
    cout << "<" << ans.front(), ans.pop();
    while(!ans.empty())
        cout << ", " << ans.front(), ans.pop();
    cout << ">";
    return 0;
}
// *&)*@*

 

 

요구사항에 따라 빈자리를 제외하고 K만큼 건너띄며 값을 출력하는 문제입니다.

 

 

728x90
반응형
Comments