백준 2164 - 카드2 (Python)
2023. 7. 28. 05:47ㆍ알고리즘
문제
https://www.acmicpc.net/problem/2164
2164번: 카드2
N장의 카드가 있다. 각각의 카드는 차례로 1부터 N까지의 번호가 붙어 있으며, 1번 카드가 제일 위에, N번 카드가 제일 아래인 상태로 순서대로 카드가 놓여 있다. 이제 다음과 같은 동작을 카드가
www.acmicpc.net
풀이
from collections import deque
n = int(input())
cards = deque(range(1,n+1))
while len(cards) > 1:
cards.popleft()
cards.append(cards[0])
cards.popleft()
print(cards[0])
직접 해당 큐를 구현하고 길이가 1이 될때 까지 반복해서 남은 결과를 출력해주면 된다.
파이썬의 리스트를 사용할 경우 0번째 요소를 pop 하는 과정에서 시간초과가 나게 된다.
따라서 collections 의 deque를 사용해주었다.