본문 바로가기
알고리즘

(백준) 11866번 : 요세푸스 문제 0 - 자바[JAVA]

by 코딩개발 2021. 9. 13.
728x90
반응형

package test;

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

public class Test_11866 {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		StringTokenizer st = new StringTokenizer(br.readLine(), " ");
		StringBuilder sb = new StringBuilder();
		Queue<Integer> queue = new LinkedList<>();

		int N = Integer.parseInt(st.nextToken());
		int K = Integer.parseInt(st.nextToken());
		Integer num = null;

		sb.append("<");
		for(int i = 1; i <= N; i++) {
			queue.offer(i);
		}

		while((num = queue.peek()) != null) { // 비어있는지 확인
			for(int i = 1; i < K; i++) { // K번째 숫자를 찾기위해 뺀 값을 다시 넣음
				num = queue.poll();
				queue.offer(num);
			}
			num = queue.poll();
			sb.append(num);
			if(queue.peek() != null) { // 비어있는지 확인 
				sb.append(", ");
			}
		}
		sb.append(">");
		System.out.println(sb);
	}
}

 

 

- sb.append(값).append(", "); 형식을 사용하면 더 간단한 코드로 작성이 가능하다.

728x90
반응형

댓글