## 의사코드 ##
# 구명보트에 탑승할 수 있는 최대 인원수: 2
# 1) 몸무게가 가장 가벼운 사람 + 몸무게가 가장 무거운 사람을 같이 태우기
# 2) 몸무게가 가장 무거운 사람 혼자 태우기
통과한 코드
def solution(people, limit):
answer = 0
# 몸무게가 가장 가벼운 사람부터 오름차순 정렬
people.sort()
# 몸무게가 가장 가벼운 사람의 인덱스, 가장 무거운 사람의 인덱스
i, j = 0, len(people)-1
while i <= j:
answer += 1
# 가장 가벼운 사람과 가장 무거운 사람을 함께 태울 수 있는 경우
if people[i] + people[j] <= limit:
i += 1 # 가장 가벼운 사람의 인덱스 증가
j -= 1 # 가장 무거운 사람의 인덱스 감소
# 가장 무거운 사람 혼자서만 탈 수 있는 경우
else:
j -= 1
return answer
가장 가벼운 사람과 가장 무거운 사람의 인덱스 활용
구명보트에 태울 수 있는 방법은 2가지
1) 가장 가벼운 사람과 가장 무거운 사람 함께 태우기
2) 가장 무거운 사람 혼자 태우기
과정 확인
people = [70, 50, 80, 50]
limit = 100
"""
몸무게가 가장 가벼운 사람: 50
몸무게가 가장 무거운 사람: 80
<가장 무거운 사람 혼자서만 탈 수 있는 경우>
몸무게가 가장 가벼운 사람: 50
몸무게가 가장 무거운 사람: 70
<가장 무거운 사람 혼자서만 탈 수 있는 경우>
몸무게가 가장 가벼운 사람: 50
몸무게가 가장 무거운 사람: 50
[가장 가벼운 사람과 가장 무거운 사람이 함께 탈 수 있는 경우]
3
"""