BOJ 1158 요세푸스 c++

백준 1158 요세푸스 cpp


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

int n, k;
list<int> editor;

int main() {
    ios::sync_with_stdio(0);
    cin.tie(0);

    cin >> n >> k;
    for (int i = 1; i <= n; i++) {
        editor.push_back(i);
    }
    cout << '<';

    auto t = editor.begin();
    while(n--) {
        int ea = k-1;
        while (ea--){
            if (!(t == editor.end()))
                t++;
            else {
                t=editor.begin();
                t++;
            }
        }
        if (t == editor.end())
            t = editor.begin();
        cout << *t;
        if (!(editor.end() == t))
            t = editor.erase(t);
        else {
            t = editor.begin();
            editor.erase(t);
        }
        if (!(n == 0))
            cout << ", ";
    }

    cout << '>';
}

원형 리스트를 이용.

'Algorithm' 카테고리의 다른 글

BOJ 1874 스택 수열 c++  (0) 2020.08.18
BOJ 10773 제로 c++  (0) 2020.08.18
BOJ 5397 키로거 c++  (0) 2020.08.16
BOJ 1475 방 번호 c++  (0) 2020.08.15
BOJ 1919 에너그램 만들기 c++  (0) 2020.08.15
  • 네이버 블러그 공유하기
  • 네이버 밴드에 공유하기
  • 페이스북 공유하기
  • 카카오스토리 공유하기
// custom