최대 2명만 탈 수 있는 구명보트가 최소 몇개 필요한지 구하는 문제
구명보트의 limit무게와 사람들의 무게가 주어진다.
문제: https://programmers.co.kr/learn/courses/30/lessons/42885#
가장 무거운 사람과 가장 가벼운 사람이 함께 탈 때 구명보트가 최소로 필요하다.
처음에는 lt,rt로 인덱스를 저장한 것이 아닌
pop()
,shift()
했는데 효율성에서 시간초과가 났다.
그래서 인덱스 값으로 접근하니 해결됐다.
function solution(people, limit) {
let answer = 0;
people.sort((a, b) => b - a);
let lt = 0;
let rt = people.length - 1;
while (lt <= rt) {
if (people[lt] + people[rt] <= limit) {
rt--;
}
answer++;
lt++;
}
return answer;
}