가장 작은 몸무게와 가장 큰 몸무게를 같이 함께 보트에 태워야지 가장 적은 수의 보트를 사용 할 수 있다.
먼저 people
의 몸무게가 들어있는 배열을 먼저 오름차순으로 정렬을 해준다. 가장 몸무게가 적은 사람과,
가장 몸무게가 큰사람과의 몸무게의 합이 limit
보다 큰지 확인을 한다.
만약, limit
보다 크다면, 가장 큰 몸무게 사람을 제거 해주고, 태워야 하는 보트 수를 1 증가시킨다.
만약, limit
보다 작다면, 가장 큰 몸무게의 사람과 가장 작은 몸무게의 사람을 모두 제거해준다. 그리고 보트의 수를 1 증가 시킨다.
이 과정을 태워야 할 사람이 있을 때 까지 반복한다.
def solution(people, limit):
from collections import deque
peoples = deque(sorted(people))
boat = 0
while len(peoples) > 0:
if peoples[0] + peoples[len(peoples) - 1] <= limit and len(peoples) > 1:
peoples.popleft()
peoples.pop()
boat += 1
else:
boat +=1
peoples.pop()
return boat