강의로 돌아가기
hoiheart

테스트5 시간 초과 (JS/코드 주의)

테스트5만 시간 초과가 되서...
혹 설정상 문제는 없는지 or 더 줄일 수 있는 방법이 있을지요?

function solution(bridge_length, weight, truck_weights) {
    let bridge = Array(bridge_length).fill(0), count = 0; // 브릿지 현황, 시간 카운팅

    const chkWeight = () => bridge.reduce((acc, curr) => acc + curr, 0); // 브릿지 무게 합계

    function run() {
        count = count + 1; // 시간 카운팅
        bridge.pop(); // 다리 마지막 칸 도착 처리

        // 다리 첫째 칸 이동 처리
        if (chkWeight() + truck_weights[0] > weight) bridge.unshift(0) // 무게 초과시 대기
        else { // 무게 허용시 트럭 이동
            bridge.unshift(truck_weights[0]); // 브릿지에 트럭 추가
            truck_weights.splice(0, 1); // 트럭 리스트에서 제거
        }
    }

    // 트럭이 모두 다리위를 지날 때까지
    while (truck_weights.length > 0) {
        run();
    }

    return count + bridge.length; // 마지막 올라탄 트럭은 다리 길이만큼 카운팅 추가
}
0 개의 답변
답변 쓰기
이 입력폼은 마크다운 문법을 지원합니다. 마크다운 가이드 를 참고하세요.