알게 된 내용
- Tuple로 이루어진 리스트(ex. [(1,2,3), (1,4,6), (1,6,9)] 에서 tuple의 n번째 원소끼리만 더하는 방법:
- sum(i for i,j,k in tuple_list) : 3
- sum(j for i,j,k in tuple_list) : 12
- sum(k for i,j,k in tuple_list) : 18
답안
- 다리를 지나고 있는 ing_que 를 만들어서 풀이하였음.
import collections
def solution(bridge_length, weight, truck_weights):
answer =0
truck_que = collections.deque(truck_weights)
ing_que =collections.deque()
#초기화
time =1
ing_que.append((truck_que.popleft(),1)) #1초에 들어왔음.
while ing_que:
time +=1
#다리 지난 것은 q에서 빼주기
if time - ing_que[0][1] == bridge_length:
ing_que.popleft()
#무게 여분 남을 경우 트럭 추가로 올림
if truck_que and sum(i for i,j in ing_que) + truck_que[0] <= weight:
ing_que.append((truck_que.popleft(),time))
return time