- k번째 사람을 제거하기 위해 k-1번 동안 앞사람을 뒤로 보내는 원리의 문제
- 맨 앞의 원소가 첫번째로 나오고, 삽입할땐 맨 뒤에 삽입되는 특성을 갖는 큐를 이용하여 해결한다.
import java.util.ArrayList;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
ArrayList<Integer> list = new ArrayList<>();
Queue<Integer> q = new LinkedList<>();
int n = sc.nextInt();
int target = sc.nextInt();
for(int i=1; i<=n; ++i)
q.offer(i);
while(!q.isEmpty()){
for(int i=0; i<target-1; ++i)
q.offer(q.poll());
list.add(q.poll());
}
System.out.print('<');
for(int i=0; i<list.size()-1; ++i)
System.out.print(list.get(i)+", ");
System.out.print(list.get(list.size()-1));
System.out.print('>');
}
}