BOJ : 1158 (요세푸스 문제)

김정욱·2020년 10월 9일
0

Algorithm - 문제

목록 보기
12/249

문제

Code

#include <iostream>
#include <list>

using namespace std;

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

    list<int> L;
    list<int>::iterator it;
    int N, K;
    cin >> N >> K;
    for(int i=1;i<=N;i++){
        L.push_back(i);
    }
    it = L.begin();
    cout << '<';
    while(L.size())
    {
        for(int i=1;i<K;i++)
        {
            it++;
            if(it == L.end())
                it = L.begin();
        }
        string s = (L.size()>1) ? ", " : ">";
        cout << *it << s;
        it = L.erase(it);
        if(it == L.end())
            it = L.begin();
    }
}
  • 원형 리스트처럼 구현하기 위해 검사해서 end()면 begin()으로 지정
profile
Developer & PhotoGrapher

0개의 댓글