백준/25001 - 30000

[백준] 28066번 : 타노스는 요세푸스가 밉다

lms0806 2024. 11. 8. 22:45
728x90
반응형

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

 

해당 문제는 k-1번 값을을 제거하고 옆으로 이동하고 k-1번 반복해서 값을 제거하는 활동을 1개의 숫자가 남을때까지 반복하면 됩니다.

 

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
import java.util.StringTokenizer;

public class Main {
	public static void main(String[] args) throws IOException{
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine());
		
		int n = Integer.parseInt(st.nextToken()), k = Integer.parseInt(st.nextToken());
		
		Queue<Integer> queue = new LinkedList<>();
		for(int i = 1; i <= n; i++) {
			queue.add(i);
		}
		
		while(true) {
			boolean flag = false;
			queue.add(queue.poll());
			for(int i = 1; i < k; i++) {
				if(queue.size() == 1) {
					flag = true;
					break;
				}
				queue.poll();
			}
			
			if(flag) {
				break;
			}
		}
		System.out.print(queue.peek());
	}
}
728x90
반응형