import java.util.*;
class Solution {
public int solution(int[] numbers, int k) {
// 큐 생성
Queue<Integer> queue = new LinkedList<>();
for (int i : numbers) {
queue.offer(i); // 배열에 있는 참가자 큐에 넣기
}
int count = 0;
// 큐의 크기가 1보다 클 동안 반복
while (queue.size() > 1) {
// count 던지는 순서 카운트
count++;
// count 변수가 k와 같을 경우 반복문 탈출
if (count == k) {
break;
}
// 큐에서 두 명의 사람을 poll() 메소드로 제거하고
// person1과 person2 변수에 저장
int person1 = queue.poll();
int person2 = queue.poll();
// count 변수가 k의 배수가 아닌 경우 큐에 다시 추가
if (count % k != 0) {
queue.offer(person1);
queue.offer(person2);
}
}
// k번째 던질 사람
return queue.poll();
}