
큐를 사용할 수 있는지 묻는 문제이다. 큐의 핵심 원리인 선입선출 개념만 알고 있으면 문제를 쉽게 해결할 수 있다.
문제풀이 방법은 다음과 같다.
쉬운 문제이니 주석 설명 없이 코드만 작성해놓겠다.
from collections import deque
N = int(input())
mydeque = deque()
for i in range(1, N + 1):
mydeque.append(i)
while len(mydeque) != 1:
mydeque.popleft()
mydeque.append(mydeque.popleft())
print(mydeque.pop())
import java.util.LinkedList;
import java.util.Queue;
import java.util.Scanner;
public class P_2164 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
Queue<Integer> queue = new LinkedList<>();
for (int i = 1; i <= N; i++) {
queue.add(i);
}
while (queue.size() > 1) {
queue.poll();
queue.add(queue.poll());
}
System.out.println(queue.poll());
}
}