
Queue 문제를 풀때는 Deque를 쓰는게 더 좋다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.*;
public class Main {
static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
static StringTokenizer st;
static StringBuilder sb = new StringBuilder();
public static void main(String[] args) throws IOException {
st = new StringTokenizer(br.readLine());
int n = Integer.parseInt(st.nextToken());
Deque<Integer> deque = new ArrayDeque<Integer>(); //Deque 생성
for(int i=0;i<n;i++){
deque.addLast(i+1);
} //Deque 초기화
while(deque.size()>1){
deque.removeFirst();
int num = deque.removeFirst();
deque.addLast(num);
} // 첫번째 수 버리고 그 다음 수를 뒤로 다시 넣음
sb.append(deque.removeFirst());
System.out.println(sb);
br.close();
}
}