문제는 간단하다 입력으로 정수가 주어진다. 7이라고 치면 1 2 3 4 5 6 7 이된다. 이를 아래 그림처럼 풀이하면 되는데 Deque(덱)을 사용해서 풀이를 하였다. Deque deque1 = new ArrayDeque<>(); 를 사용해서 Deque를 선언하고 for (int i = 1; i <= N; i++) { deque1.add(i); } 를 통해서 1~N까지의 수로 초기화 시켜준다. 이후 deque1.poll()를 해서 맨 앞의 수를 빼서 deque로 추가해주고 deque1.add를 통해서 다음 수를 뒤로 추가해준다. 이후 마지막남은 6을 추가해서 출력해주면 된다. 
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.ArrayDeque;
import java.util.Deque;
public class BOJ_2161 {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
Deque<Integer> deque1 = new ArrayDeque<>();
for (int i = 1; i <= N; i++) {
deque1.add(i);
}
while (deque1.size() != 1) {
System.out.print(deque1.poll().toString() + " ");
deque1.add(deque1.poll());
}
System.out.print(deque1.poll());
}
}
https://www.acmicpc.net/problem/2161