프로그래머스 - 다리를 지나는 트럭

박상진·2022년 3월 11일
0

프로그래머스

목록 보기
59/65

자세한 설명은 링크 참고

무게 제한이 있는 다리를 건너는데 필요한 시간을 구하는 문제이다.

풀이

풀이 참고 링크 : 규도자 개발 블로그

def solution(bridge_length, weight, truck_weights):
    answer = 0
    on_truck = [0] * bridge_length
    while on_truck != [] :
        answer += 1
        on_truck.pop(0)
        if truck_weights :
            if sum(on_truck) + truck_weights[0] <= weight :
                on_truck.append(truck_weights.pop(0))
            else :
                on_truck.append(0)
    return answer

1초 당 1대의 트럭만 올라갈 수 있고, 그 제한을 다리 길이로 제한하고 있기 때문에 다리 위에 있는 트럭의 수로 시간을 측정한다.
1. 다리 위에 있는 트럭과 올라갈 트럭의 무게의 합이 제한 무게보다 작다면 트럭을 다리위로 올린다.
2. 무게 제한을 넘어가면 올라갈 수 없기 때문에 0을 추가해준다.
3. 반복하면 끝

느낀점

  1. 처음 변수로 생각한 것은 다리 길이가 아니었고, 트럭 한대한대 씩 생각했었다.
    • 이렇게 생각하니 점점 복잡해졌는데, 이유는 트럭이 한대만 올라갈 수 있으면 다리 길이의 시간이 필요했고, 더해 나가는 과정에서 추가하고 빼는 과정이 점점 복잡해졌다. 심지어 트럭이 중복되기도하고... 계속해서 어려움을 당하고 있다가 답이 없다는 생각으로 다른 사람이 어떻게 풀었는지 확인하게되었다.
  2. 문제를 새로운 관점에서 확인하는 습관을 길러야겠다는 생각이 들었다.
    • 내가 생각한 것과 다른 방향으로 생각했다면 생각보다 쉽게 문제를 풀었을지도 모르겠다는 생각이 들었다.
    • 이전에 혼자 풀었던 문제들이 이런식으로 풀렸을 것이라는 생각이 들었다.
    • 이것이 level2를 풀기위한 첫번째 과정이란 생각도 들었다.
    • 꾸준하게 문제를 풀어보자!
profile
개발자가 되고싶당

0개의 댓글