본문 바로가기
JAVA/백준

[백준/자바] 1158번 요세푸스 문제

by 동백05 2022. 1. 16.

#1일1알고리즘 15일차

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

 

1158번: 요세푸스 문제

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

www.acmicpc.net

import java.util.Scanner;
import java.util.LinkedList;
import java.util.Queue;
public class jan16 {

	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner s = new Scanner(System.in);
		int number=s.nextInt();
		Queue<Integer> queue=new LinkedList<>();
		Queue<Integer> result=new LinkedList<>();
		for(int i=1;i<=number;i++) {
			queue.add(i);
		}
		int k=s.nextInt();
		while(queue.size()!=0) {
			for(int i=0;i<k-1;i++) {
				int pass=queue.poll();
				queue.add(pass);
			}
			int pop=queue.poll();
			result.add(pop);
		}
		System.out.print("<");
		for(int i=0;i<number-1;i++) {
			System.out.print(result.poll()+", ");
		}
		System.out.print(result.poll()+">");
	}

}

큐를 사용해서 문제를 풀었다.

댓글