본문 바로가기
TIL - 프로그래밍/Python 알고리즘

[백준] 2164. 카드2 - Python

by chaemj97 2022. 6. 9.
728x90

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

 

2164번: 카드2

N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가

www.acmicpc.net


  • 코드
from collections import deque

# N장의 카드, 카드 번호 1~N
N = int(input())
cards = [i for i in range(1,N+1)]
card = deque(cards)

# 1장이 남을 때까지
while len(card) > 1:
    # 맨 윗장 버리기
    card.popleft()
    # 맨 윗장을 맨 뒤로 보내기
    card.rotate(-1)
    
print(card[0])
  • 풀면서 배운 점
    • deque에서 사용 가능 
      • deque.rotate(-1)
        • 앞으로 한 칸씩 옮기기 (맨 앞 값은 맨 뒤로)
      • deque.rotate(1)
        • 뒤로 한 칸씩 옮기기 (맨 뒤 값은 맨 앞으로)
728x90
반응형

댓글