[알고리즘] 백준 - 1158 ( 요세푸스 문제 ) / 자바

import java.util.*;
import java.io.*;

class Main {
	public static void main(String args[]) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder("<");
		StringTokenizer st = new StringTokenizer(br.readLine());
		Queue<Integer> queue = new LinkedList<Integer>();
		int N = Integer.parseInt(st.nextToken());
		int K = Integer.parseInt(st.nextToken());
		for(int i = 1 ; i <= N; i ++) {
			queue.offer(i);
		}
		for(int i = 0 ; i < N; i ++) {
			for(int j = 0 ; j < K-1 ; j++) {
				queue.offer(queue.poll());
			}
			if( i< N-1) {
			sb.append(queue.poll()).append(",").append(" ");
			}else {
				sb.append(queue.poll()).append(">");
			}
			
		}
	
		System.out.print(sb);
		
	}
}

사람들은 연결리스트로 빠르게 풀었던데 관련해서 공부해야겠다.

좋은 웹페이지 즐겨찾기