반응형
https://www.acmicpc.net/problem/1966
1966번: 프린터 큐
여러분도 알다시피 여러분의 프린터 기기는 여러분이 인쇄하고자 하는 문서를 인쇄 명령을 받은 ‘순서대로’, 즉 먼저 요청된 것을 먼저 인쇄한다. 여러 개의 문서가 쌓인다면 Queue 자료구조에
www.acmicpc.net
# 포인트
1. enumerate로 (값과 인덱스)를 묶어주기
2. 최대값인지 확인 : max(iterable, key=lambda x:)
값이 최대값이면 cnt+1 하고 바로 출력하고, q.popleft()
최대값이 아니면 뒤에 다시 넣기 q.append(q.popleft())
3. cnt로 출력순서 갱신
import sys
from collections import deque
input=sys.stdin.readline
case=int(input())
for _ in range(case):
n,m=map(int, input().split())
nums=list(map(int, input().split()))
q=deque([(i, idx) for idx, i in enumerate(nums)])
cnt=0
while True:
if q[0][0] == max(q, key=lambda x : x[0])[0]: #q[0][0]는 값
cnt+=1
if q[0][1]==m: #q[0][1]는 인덱스
print(cnt)
break
else :
q.popleft()
else :
q.append(q.popleft())
반응형
'프로그래밍 > 알고리즘 & 자료구조' 카테고리의 다른 글
백준 10813 : 공바꾸기 with 파이썬 (0) | 2024.01.23 |
---|---|
백준 10810 : 공넣기 with 파이썬 (0) | 2024.01.23 |
백준 15655 : N과 M (6) with 파이썬 (0) | 2024.01.21 |
백준 15649 : N과 M (1) with 파이썬 (0) | 2024.01.20 |
백준 2667번 : 단지번호 붙이기 with 파이썬 (0) | 2024.01.20 |
댓글