boj 11866 : 요세푸스 문제 0
https://www.acmicpc.net/problem/11866
package boj11866;
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();
Queue <Integer> q = new LinkedList<>();
int N = Integer.parseInt(st.nextToken());
int K = Integer.parseInt(st.nextToken());
sb.append("<");
for(int i = 1; i <= N ; i++){
q.offer(i);
}
int cnt = 0;
while(q.size() > 1){
int top = q.poll();
cnt++;
if(cnt == K){
sb.append(top).append(", ");
cnt = 0;
}else{
q.offer(top);
}
}
sb.append(q.poll()).append(">");
System.out.println(sb);
}
}
큐를 이용해서 간단하게 풀 수 있는 문제이다.