ICPC Regionals Asia Pacific Korea Daejeon Nationalwide Internet Competition 2016 L번
Queue
다리가 무게가 0인 트럭들로 꽉 차있다고 생각하고 문제를 푼다
truck
큐와 bridge
큐를 만들어서 다리 위에 있는 트럭들과 대기중인 트럭들을 관리한다.
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]
a=input().split(" ")
tmp = input().split(" ")
truck = ArrayQueue()
time=0
bridge = ArrayQueue()
birdsum=0
for i in tmp:
truck.enqueue(int(i))
for i in range(int(a[1])):
bridge.enqueue(0)
while not bridge.isEmpty():
if truck.isEmpty():
bridge.dequeue()
else:
birdsum-=bridge.dequeue()
if birdsum+truck.peek() <= int(a[2]):
tmp=truck.dequeue()
birdsum+=tmp
bridge.enqueue(tmp)
else :
bridge.enqueue(0)
time+=1
#print("truck\n",truck.data)
#print("bridge\n",bridge.data)
print(time)
[백준] 1966번 프린터 큐 (python) (0) | 2020.05.23 |
---|