본문 바로가기

OJ

[BOJ] 28066 타노스는 요세푸스가 밉다 (JAVA)

https://www.acmicpc.net/problem/28066

 

28066번: 타노스는 요세푸스가 밉다

$N$마리의 청설모가 $1$번부터 $N$번까지 순서대로 시계 방향으로 원을 이루면서 앉아있다. 타노스는 손을 튕겨서 순서대로 두 번째 청설모를 제거해 왔는데, 옆 나라의 수학자 요세푸스도 이미

www.acmicpc.net

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
import java.util.StringTokenizer;

public class Main {
	
    public static void main(String[] args) throws Exception {

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine(), " ");
        int N = Integer.parseInt(st.nextToken());
        int K = Integer.parseInt(st.nextToken());

        Deque<Integer> dq = new ArrayDeque<>();
        for (int i = 1; i <= N; i++) {
            dq.addLast(i);
        }

        while (K <= dq.size()) {
            dq.addLast(dq.pollFirst());
            for (int i = 1; i < K; i++) {
                dq.pollFirst();
            }
        }

        System.out.print(dq.peekFirst());

    }
	
}