[Python] 백준 2164 카드2

eun·2024년 1월 22일

문제 2164

먼저 위 문제를 이해해보자.

  • n장의 카드가 주어지며, 1번 카드가 제일 위에, n번 카드가 가장 아래인 상태로 놓인다.
  • 제일 위에 있는 카드 버리기 -> 제일 위에 있는 카드를 제일 아래로 놓기 이 순서를 카드가 1장이 남을 때까지 반복한다.
  • 마지막으로 남는 카드를 출력하라
# 2164

import sys
from collections import deque

n = int(sys.stdin.readline())

lst = deque()
for i in range(1, n+1):
    lst.append(i)
    
while len(lst) != 1:
    lst.popleft()
    lst.append(lst[0])
    lst.popleft()
    
print(lst[0])

위 문제는 deque를 사용하여 쉽게 풀 수 있었다.

0개의 댓글