1. 문제 링크
1158번: 요세푸스 문제
첫째 줄에 N과 K가 빈 칸을 사이에 두고 순서대로 주어진다. (1 ≤ K ≤ N ≤ 5,000)
www.acmicpc.net
2. 문제 및 입출력예제

3. 문제 풀이
큐에 1부터 N까지의 수를 먼저 넣는다.
반복문에서 K보다 작은 경우에는 큐에서 빼서 다시 넣는다.
큐의 크기가 1이 되면 끝내면 된다.
4. 코드
package com.ssafy.daily06;
import java.util.ArrayDeque;
import java.util.ArrayList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
	
	private static StringBuilder sb = new StringBuilder();
	public static void main(String[] args) throws Exception {
		Scanner sc = new Scanner(System.in);
		int N = sc.nextInt();
		int K = sc.nextInt();
		
		sb.append("<");
		
		Queue<Integer> queue = new ArrayDeque<>();
		for(int i=1;i<N+1;i++) {
			queue.offer(i);
		}
		for(int i=0;i<N;i++) {
			for(int j=1;j<K;j++) {
				queue.offer(queue.poll());
			}
			if(queue.size()==1) {
				sb.append(queue.poll()+">");
			}
			else {
				sb.append(queue.poll()+", ");
			}
		}
		System.out.println(sb);
	}
}
'ALGORITHM' 카테고리의 다른 글
| 백준 13458 시험 감독 (Java) (0) | 2023.02.22 | 
|---|---|
| 백준 1991 트리 순회 (Java) (0) | 2023.02.21 | 
| 백준 10866 덱 (Java) (0) | 2023.02.19 | 
| 백준 10972 다음 순열 (Java) (0) | 2023.02.18 | 
| 백준 9655 돌 게임 (Java) (0) | 2023.02.17 | 
 
									
								 
									
								 
									
								