[Programmers] 다리를 지나는 트럭

김가영·2021년 1월 22일
0

Algorithm

목록 보기
24/78
post-thumbnail
  • list += element 는 항상 extend의 형태로 작용한다. tuple 이나 리스트의 형태로 element를 추가해주려면 append를 이용해야 한다.

  • deque에 list나 tuple append 가능함

  • 항상 index 범위 주의해줄것..!

truck_weights: 아직 다리 위에 있지 않은 트럭들
truck_in_bridge: 다리 위에 있는 트럭들 (트럭 무게, 다리에 들어간 시간)의 배열. → 다리 위에 있는 트럭들의 합을 구하여 추가로 트럭이 들어갈 수 있는 지를 계산하기 위함
time: 소요시간

time이 1 증가할 때마다 while 문에서는 같은 작업을 수행한다.

  1. 다리 위에 있는 트럭 나가기
    다리에는 1초에 트럭 하나씩만 들어올 수 있기에 맨 앞 트럭만 검사해주면 된다. 맨 앞 트럭이 들어온 시간과, 현재 시간, 다리 길이를 비교하여 맨 앞 트럭이 다리를 나갈 수 있으면 내보낸다
  2. 다리 위에 트럭 들어가기
    sumTruckonBridge : 현재 다리 위에 있는 트럭들의 무게의 합
    sumTruckonBridgetruck_weight 가장 첫번째의 트럭 무게를 합 친 무게를 다리가 감당할 수 있으면 truck_weight의 첫번째 트럭을 truck_in_bridge로 옮긴다.
    ( 본 과정은 truck_weight에 트럭이 있을 때에만 실행한다)
  3. while 문은 truck_weighttruck_in_bridge 가 모두 빌 때까지 진행한다. → 다리에 더 이상 진입할 트럭이 없고, 다리 위에 있는 트럭이 모두 나갈 때까지.
profile
개발블로그

0개의 댓글