꼬박 2틀에 걸려 푼 문제입니다.
처음에는 다리를 건넌 트럭을 모으는 브릿지를 배열로 만들어서 풀려고 하니까 테스트 케이스는 다 맞았는데 제출하니까 한 두개 빼고는 다 틀리더라고요.
이번 문제는 테스트 케이스 자체가 다른 문제보다 어려웠기 때문에 좀 더 꼬인 느낌이네요.
function solution(bridge_length, weight, truck_weights) {
let answer = 0, sumOfWeight = 0;
const crossingTruck = [];
for (let i = 0; i < bridge_length; i++) crossingTruck.push(0);
let nowTruck = truck_weights.shift();
crossingTruck.push(nowTruck);
crossingTruck.shift();
sumOfWeight += nowTruck;
answer++;
while (sumOfWeight) {
sumOfWeight -= crossingTruck.shift();
nowTruck = truck_weights.shift(); // 대기 트럭 빼기
if (sumOfWeight + nowTruck <= weight) { // 지나감
crossingTruck.push(nowTruck);
sumOfWeight += nowTruck;
} else { // 못 지나감
crossingTruck.push(0);
truck_weights.unshift(nowTruck);
}
answer++;
}
return answer;
}
아직 제 실력이 많이 부족하다는 것을 느꼈습니다.
알고리즘을 풀 때 내 생각과는 전혀 다른 문제들도 많이 있었고요 ㅠ..ㅠ