[백준] 카드2(2164)

Wonho Kim·2025년 1월 22일

Baekjoon

목록 보기
14/42

https://www.acmicpc.net/problem/2164

큐를 사용할 수 있는지 묻는 문제이다. 큐의 핵심 원리인 선입선출 개념만 알고 있으면 문제를 쉽게 해결할 수 있다.

문제풀이 방법은 다음과 같다.

  1. 큐에서 가장 앞부분을 pop
  2. 큐에서 한번 더 pop한 다음 가장 뒤로 append하여 옮김

쉬운 문제이니 주석 설명 없이 코드만 작성해놓겠다.

Python

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())

Java

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());
    }
}
profile
새싹 백엔드 개발자

0개의 댓글