[알고리즘/백준] 11866 요세푸스 문제 0(자바, 큐)

[알고리즘/백준] 11866 요세푸스 문제 0(자바, 큐)

문제

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

풀이 코드

큐 자료구조를 사용하여 풀이

package boj; 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 boj_11866 { 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()); int k = Integer.parseInt(st.nextToken()); Queue queue = new LinkedList<>(); //StringBuilder를 사용하여 한번에 모아 출력함으로써 실행 시간 단축 StringBuilder sb = new StringBuilder(); sb.append("<"); for (int i = 1; i <= n; i++) { queue.offer(i); } while (!queue.isEmpty()) { //k-1번째 수까지는 큐에서 빼고 다시 뒤로 넣음으로써 원과 같이 순환하는 형태로 만든다. for (int i = 0; i < k-1; i++) { queue.offer(queue.poll()); } //k번째 수는 큐에서 빼서 순열의 원소로 넣는다. sb.append(queue.poll()); //큐의 사이즈가 0이면 순열의 끝이기 때문에 , 을 붙히지 않고 >을 붙혀야 한다. if (queue.size() != 0) { sb.append(", "); } } sb.append(">"); System.out.println(sb); } }

728x90

from http://developer-hm.tistory.com/184 by ccl(A) rewrite - 2021-10-06 14:01:51