function solution(people, limit) {
let answer = 0
people.sort((a, b) => b - a)
console.log("people: ", people)
for (let i = 0, j = people.length - 1; i <= j; i++, answer++) {
if (people[i] + people[j] <= limit) j--
}
console.log(answer)
return answer
}
// solution([70, 50, 80, 50], 100)
// solution([70, 80, 50], 100)
solution([70, 80, 40, 43, 45, 50, 50, 96], 100)
limit
보다 크면 가장 무거운 무게를 지나간다(버린다) 동시에 boat
갯수 추가limit
이하라면 무거운무게는 가벼운쪽으로, 가벼운무게는 무거운쪽으로 이동해 합을 구하면서 boat
수를 증가시킨다.queue
을 생각해서 무게를 queue
에 넣고, limit이상이 되면 dequeue
하려고 했다.
하지만 몇번째까지 dequeue
해야 하는지 설정하는데에서 어려움을 겪었다.
그리고 가장 가벼운무게 + 가장 무거운 무게가 가장 많이 탈 수 있는 방법이라는 것을 생각해내지 못했다.