배운 내용
효율적으로 값 넣는 방법 -> 1 2 3 4 6 8 입력시
data = list(map(int, input().split()))
출처: https://thisismi.tistory.com/entry/백준-1966번-프린터-큐-파이썬-정답-코드 [This is Mi:티스토리]
덱 안에 해당 숫자가 있는지 확인하는 방법 -> 값 in 덱
덱에서 가장 앞에 있는 수 조회 -> 덱[0] / 가장 뒤에 있는 수 조회 -> 덱[-1]
접근 방식
- 순서를 기록해야 하기 때문에, 순서 기록용 덱을 하나 더 생성해서 중요도를 담은 덱과 함께 추가와 제외를 함
정답
import collections
n_count = int(input())
ans = []
for _ in range(n_count):
deque = collections.deque()
seq = collections.deque()
n, m = map(int, input().split())
numbers = map(int, input().split())
index = 0
for i in numbers:
deque.append(i)
seq.append(index)
index += 1
count = 0
max_value = max(deque)
while m in seq:
if deque[0] != max_value:
deque.rotate(-1)
seq.rotate(-1)
else:
deque.popleft()
seq.popleft()
count += 1
if len(deque):
max_value = max(deque)
ans.append(count)
for i in ans:
print(i)
'Algorithm' 카테고리의 다른 글
5430 AC / 큐 (0) | 2025.01.18 |
---|---|
10866 덱 / 큐 (0) | 2025.01.17 |
이상한 문자 만들기 / 프로그래머스 (0) | 2025.01.15 |
11866 요세푸스 문제 0 / 큐, 덱 (0) | 2025.01.15 |
2609 최대공약수와 최소공배수 / 정수론 및 조합론 (0) | 2025.01.14 |