이번 문제는 자료구조 중 '큐'에 대한 기본적인 내용을 묻는 문제였다.
자바 언어에서 Collection 프레임워크에서 지원해주는 Queue를 사용하면 쉽게 해결가능한 문제였다.
기본적인 FIFO(선입선출) 구조로 Stack과 반대로 생각하면 된다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.LinkedList;
import java.util.Queue;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringBuilder sb = new StringBuilder();
int n = Integer.parseInt(br.readLine());
Queue<Integer> queue = new LinkedList<>();
for(int i=1;i<=n;i++)
queue.add(i);
while(true){
int temp = queue.remove();
if(queue.isEmpty()){
sb.append(temp);
break;
}
temp = queue.remove();
queue.add(temp);
}
System.out.println(sb);
}
}