★VER2.0★enumerate, lambda 정렬★프린터 큐[백준 파이썬 1966번]
2023. 4. 24. 21:53
728x90
반응형
https://www.acmicpc.net/problem/1966
VERSION 2.0
import sys
from collections import deque
T = int(sys.stdin.readline())
for i in range(T):
gae , chul = list(map(int,sys.stdin.readline().split()))
idx = list(map(int , sys.stdin.readline().split()))
gae = [i for i in range(gae)]
res = deque()
cnt = 0
for i,v in enumerate(idx):
res.append([v , i])
while True:
maxe = max(res)[0]
idx = res.popleft()
if maxe == idx[0]:
cnt +=1
if idx[1] == chul:
print(cnt)
break
else:
res.append(idx)
VERSION 1.0
import sys
from collections import deque
T = int(sys.stdin.readline())
res_fin = []
for _ in range(T):
B = list(map(int , sys.stdin.readline().split()))
c = deque(map(int, sys.stdin.readline().split()))
i = 0
d = deque([v,i] for i,v in enumerate(c))
res =[]
# print(d)
# d = sorted(d , key = lambda x: (x[0] , x[1]) ,reverse=True)
# e = sorted(d , key = lambda x: x[0] ,reverse=True)
res = []
maxe = max(d)[0]
while True:
if len(d)==0:
break
else:
maxe = max(d)[0]
if d[0][0] == maxe:
res.append(d.popleft())
else:
d.append(d.popleft())
idx =0
for k,p in res:
idx+=1
if p==B[1]:
res_fin.append(idx)
for i in res_fin:
print(i)
1. [v, k for k,v in enumerate(c)] ==> enumerate 함수는 원소에 순서값을 부여 할 수 있다!
2. sorted(d, key = lambda x: (x[0] , x[1]) , reverse = True) ==> 리스트 내에 있는 리스트의 이중정렬이 가능하다.
3. max(d)[0] ==> 이중 리스트내 첫번째 인자들의 max 값 추출할 수 있다.
728x90
반응형
'Python(백준) > 큐,덱' 카테고리의 다른 글
VER2.0★reverse(),덱 string 자르기★AC[백준 파이썬 5430번] (1) | 2023.04.26 |
---|---|
★index 활용 ★회전하는 [백준 파이썬 1021번] (0) | 2023.04.26 |
★str, join 기억하기★VER2.0★요세푸스문제0[백준 파이썬 11866번]★ (0) | 2023.04.24 |
[백준 파이썬 11286번]★절댓값 힙 구현하기★heap.heappush(리스트 , (우선순위 비교값_1) , (우선순위 비교값_2)★heap.heappop(리스트) ==> 우선순위에 따른 pop() (1) | 2022.12.31 |
★큐,덱★Ver2.0★카드2[백준 파이썬 2164번] (0) | 2022.12.31 |