문제

입력

출력

예제

idea

정리
- 차례대로 큐에 집어넣는다.
- K-1까지의 수를 뺀 후 맨 뒤로 다시 집어 넣는다
- K번째의 수를 출력에 저장 후 제거한다.
- 숫자가 모두 없어질 때 까지 반복
Code
import java.util.*;
import java.io.*;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
StringBuilder sb = new StringBuilder();
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
Queue<Integer> que = new LinkedList<>();
for (int i = 1; i <= N; i++)
que.offer(i);
sb.append("<");
while (que.size() != 1) {
for (int i = 1; i <= K - 1; i++) {
int x = que.peek();
que.poll();
que.offer(x);
}
int x = que.peek();
que.poll();
sb.append(x).append(", ");
}
sb.append(que.peek()).append(">");
System.out.println(sb);
}
}
결과
