ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [BOJ] 11866 1158 : 조세퍼스 문제
    STUDYING/Algorithm 2018. 10. 10. 22:26
    728x90

    문제


    11866 : 조세퍼스 문제 0 

    1158 : 조세퍼스 문제


    규칙


    m-1번을 건너 뛴 이후에 m번째 사람이 뽑힌다.

    즉, m-1번 ( 건너뛰는 사람 )을 top 뒤로 보냄. 그 다음으로 m번째 사람을 뽑고 그 값을 기록한다.


    코드



    #include <stdio.h>


    int queue[1000000];

    int output[1000000];

    int front =-1;

    int top =-1;


    void push(int n) {

        queue[++top] = n;

    }


    int pop() {

        if (front == top) {

            return -1;

        }

        else {

            return queue[++front];

        }

    }


    int main() {

        int n, m, i;

        int cnt=0;

        

        scanf("%d %d", &n, &m);

        for (i = 1; i <= n; i++) {

            push(i);

        }

        

        while (front != top) {

            for (i = 0; i < m - 1; i++) {

                push(pop());

            }

            output[cnt] = pop();

            cnt++;

        }

        

        printf("<");

        for (i = 0; i < n - 1; i++) {

            printf("%d, ", output[i]);

        }

        printf("%d>\n", output[i]);

        

    }


    'STUDYING > Algorithm' 카테고리의 다른 글

    [BOJ] 1874 : 스택 수열  (0) 2018.10.18
    백준 문제  (0) 2018.10.15
    [BOJ] 1966 : 프린터 큐  (0) 2018.10.11
    [BOJ] 10845 : 큐  (0) 2018.10.04
    [BOJ] 10828 : 스택  (0) 2018.10.04
Designed by Tistory.