Post List

[BOJ] 백준 1158 조세퍼스 문제

문제 링크 : https://www.acmicpc.net/problem/1158

연결리스트를 사용하여 푸는 문제 입니다.

소스코드 :

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
#include <iostream>
#include <vector>
#include <list>
#include <string>
using namespace std;
int main() {
    cin.tie(0);
    ios_base::sync_with_stdio(false);
    int n, k;
    cin >> n >> k;
    list<int> survivor;
    for (int i = 0; i < n; i++) {
        survivor.push_back(i + 1);
    }
        
    list<int>::iterator kill = survivor.begin();
    cout << "<";
    while (n > 0) {
        for (int i = 0; i < k - 1; i++) {
            ++kill;
            if (kill == survivor.end())
                kill = survivor.begin();
        }
        cout << *kill;
        kill = survivor.erase(kill);
        
        if (kill == survivor.end())
            kill = survivor.begin();
        n--;
        if (n != 0) {
            cout << ", ";
        }
        
    }
    cout << ">";
}
cs

댓글