Northwestern European Regional Contest NWERC 2006 F번
큐
큐 구현부
class ArrayQueue:
def __init__(self):
self.data = []
def size(self):
return len(self.data)
def isEmpty(self):
return self.size()==0
def enqueue(self, item):
self.data.append(item)
def dequeue(self):
if self.isEmpty():
print("빈 큐임")
else:
return self.data.pop(0)
def peek(self):
if self.isEmpty():
print("빈 큐임")
else:
return self.data[0]
입력값들을 모두 큐에 넣은 뒤 우선 순위대로 정렬한 리스트를 만들어 우선순위대로 출력한다. 입력값을 큐에 넣을 때 위치와 함께 튜플로 넣어주어 원래 있던 위치가 어디였는지 알 수 있게 해준다.
n = int(input())
for i in range(n):
q = ArrayQueue()
m,k=input().split(" ")
m=int(m)
k=int(k)
tmp=input().split(" ")
tmp=list(map(int, tmp))
p=sorted(tmp)
p.reverse()
for i in range(len(tmp)) :
q.enqueue((i,tmp[i]))
i=1
while not q.isEmpty():
d=q.dequeue()
if d[1] < p[i-1]:
q.enqueue(d)
else :
if d[0] == k :
print(i)
break
i+=1
[백준] 13335번 트럭 (Python) (0) | 2020.05.22 |
---|