문제이해
사람들의 몸무게가 배열로나오고 , 보트의 최대제한무게가 주어질때
보트에 최대2명까지 탈수 있을때
모두 보트타고 구출하기 위한 최소 보트개수
1. 2명씩 탈수있다 => 2명씩 짝 짓기
2. 오름차순해서 가장적은사람과 가장무거운사람을 짝지으면 효율적!!
3. 인덱스 첫번째와 마지막을 left,right로 정해놓고 인덱스 이동하면서 보트개수(answer) 세어주기
def solution(people, limit):
answer = 0
people.sort() # 50,50,70,80
left ,right = 0,len(people)-1
while left<right:
if people[left] + people[right] <= limit:
answer += 1
left += 1
right -= 1
if right == left:
answer += 1
break
elif people[left] + people[right] > limit:
answer += 1
right -= 1
if right == left:
answer += 1
break
return answer
people = [70, 80, 50]
limit = 100
print(solution(people,limit))