Baekjoon/IM Level
[백준] 2164 카드2 (실버4) / deque()
hellosonic
2023. 3. 1. 17:35
문제요약
나의 코드 및 설명
- card : 카드를 넣을 리스트를 생성한 후 반복문으로 1부터 N까지의 수를 card 리스트에 저장한다.
- queue : 큐 자료구조를 이용하기 위해 데크를 생성한다.
- queue.popleft()를 통해 가장 먼저 들어간 카드를 삭제한다.
- queue.append(queue.popleft()) : 그 다음, 가장 먼저 들어간 카드를 큐의 가장 뒤에 추가한다.
from collections import deque
n = int(input())
card = []
for i in range(1,n+1):
card.append(i)
queue = deque(card)
while len(queue) != 1:
queue.popleft()
queue.append(queue.popleft())
print(queue[0])
다른 코드 및 설명
- 풀이 방식은 동일하나, queue = deque()를 통해 큐를 생성하고, queue 안에 직접 숫자를 넣는다.
from collections import deque
n = int(input())
queue = deque()
for i in range(1,n+1):
queue.append(i) #deque[1,2,3,4,,,]
while len(queue) > 1:
queue.popleft()
queue.append(queue.popleft())
print(queue[0])
피드백
데크 라이브러리 사용이 어색하여 풀어보았던 문제, 실버4 난이도이지만 비교적 쉽게 풀 수 있었다.
queue = deque() 를 통해 큐 자료구조의 특징인 FIFO (popleft())를 사용할 수 있다는 것을 명심하자.