문제요약
나의 코드 및 설명
- 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())를 사용할 수 있다는 것을 명심하자.
'Baekjoon > IM Level' 카테고리의 다른 글
[백준] 2577 숫자의 개수 (브론즈2) / 숫자 각 자릿수를 리스트에 저장 (0) | 2023.03.01 |
---|---|
[백준] 1157 단어 공부 (브론즈1) / upper() (0) | 2023.03.01 |
[백준] 2851 슈퍼마리오 (브론즈1) (0) | 2023.02.24 |
[백준] 2810 컵홀더 (브론즈1) (0) | 2023.02.24 |
[백준] 2563 색종이 (실버5) (0) | 2023.02.23 |