구명보트는 최대 2명이 탈 수 있다.
또한 구명보트의 무게 제한은 문제의 입력값(limit)으로 주어진다.
사람들의 몸무게가 담겨 있는 리스트는 문제의 입력값(people)으로 주어진다.
최소 개수의 구명보트를 사용해 모든 사람들을 구출하려고 할 때의 구명보트 개수를 구하여라.
def solution(people, limit):
move = 0
people.sort()
while len(people) >=2:
maxKg = people.pop()
move += 1
possible = [kg for kg in people if kg+maxKg<=limit]
if possible:
possible.pop()
people = possible + people[len(possible)+1:]
if people:
return move+1
else:
return move
from collections import deque
def solution(people, limit):
move = 0
people.sort()
people = deque(people)
maxKg = people.pop()
while len(people) > 1:
if people[0] + maxKg <= limit:
people.popleft()
move += 1
maxKg = people.pop()
if people:
if maxKg + people[0] <= limit:
return move+1
else:
return move+2
return move+1
def solution(people, limit) :
answer = 0
people.sort()
a = 0
b = len(people) - 1
while a < b :
if people[b] + people[a] <= limit :
a += 1
answer += 1
b -= 1
return len(people) - answer