알고리즘

[JAVA]백준 11866번: 요세푸스 문제 0

Kwoncorin 2020. 12. 27. 01:28
728x90

www.acmicpc.net/problem/11866

 

11866번: 요세푸스 문제 0

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

www.acmicpc.net

 

1. 문제 설명

 

N명의 사람들이 원을 이루면서 앉아있을 때 K번째 사람을 없애고 없애지는 순서대로 출력하면 된다. 문제 분류는 큐가 적혀있는데 큐 대신 ArrayList를 사용하였다.

 

2. 코드

import java.io.BufferedWriter;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.lang.reflect.Array;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Scanner;

public class Main {



    public static void main(String[] args) throws IOException {
        Scanner scan=new Scanner(System.in);

        int N=scan.nextInt();
        int K=scan.nextInt();
        int index=K-1;

        ArrayList<Integer> list=new ArrayList<>();

        for(int i=1;i<=N;i++)
            list.add(i);

        System.out.print("<"+K);
        list.remove(K-1);

        for(int i=0;i<N-1;i++){
            index=(index+K-1)%(list.size());

            System.out.print(", "+list.get(index));
            list.remove(index);
        }

        System.out.print(">");

        scan.close();
    }



}
728x90