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

이창형·2023년 3월 17일
0

코드

import Foundation

func solution(_ bridge_length:Int, _ weight:Int, _ truck_weights:[Int]) -> Int {
	// 다리의 길이 만큼 배열 생성
    var array = Array(repeating: 0, count: bridge_length)
    // 정답이 될 변수 
    var time = 0
    var truck_weights = truck_weights
    // 다리의 무게를 저장
    var bridgeWeights = 0
    
    while !array.isEmpty {
        time += 1
        bridgeWeights -= array.removeFirst()
        
        // 더 지나갈 트럭이 있을때 실행
        if let a = truck_weights.first {
        	// 다리의 무게를 계산하여 트럭을 올릴지 시간을 보낼지 판단
            if a + bridgeWeights <= weight {
                array.append(a)
                bridgeWeights += truck_weights.removeFirst()
            } else {
                array.append(0)
            }
        }
    }
    
    return time
}

회고

  • 처음 코드를 작성했을때 시간 초과가 떴다
  • 큐의 개념으로 접근하니 문제가 풀렸다
  • 문제 이해를 못해서 시간이 오래 걸렸다
  • 큐 공부를 많이 할 수 있었던 문제였다
  • 성장한 것 같아서 기분이 좋다
profile
iOS Developer

0개의 댓글