[백준 알고리즘] 백준 2164번: 카드2 / 파이썬 Python3 (큐, 덱)
🔔 문제
출처 : https://www.acmicpc.net/problem/2164
🔐 해결 (소스 코드)
# deque를 활용한 풀이
from collections import deque
N = int(input())
queue = deque([i+1 for i in range(N)])
# ex) N = 4, queue = deque([1, 2, 3, 4])
while len(queue) > 1: # queue의 길이가 1보다 클 때까지만 while문 실행
queue.popleft() # (우선, 제일 위에 있는 카드를 바닥에 버린다)
temp = queue.popleft() # temp :: 맨 위에서 제일 아래로 옮길 카드의 숫자를 담을 임시변수
queue.append(temp) # (제일 아래로 옮김)
print(queue.pop()) # 마지막 남은 카드 숫자를 알기 위해 pop() 사용
📝 후기
큐 자료구조에 대해서 알고 있다면 쉽게 풀 수 있는 문제였다.
다만, 시간 초과가 나와서 실패할 가능성 때문에 파이썬 라이브러리 중 하나인 deque을 활용해서 풀어보았고, 특별한 문제 없이 정답 처리가 되었다.
큐를 응용한 문제 중에서 매우 쉬운 편에 속하는 문제일 것 같다.
많이 부족한 나… 아직 갈 길이 멀다…
Leave a comment