title: "[프로그래머스] 구명보트 Python 파이썬 해설 (Level 2) - 이도훈"
cleanUrl: "programmers/42885"
description: "프로그래머스 Level 2 문제 [구명보트]의 풀이를 정리합니다."
def solution(people, limit):
people.sort()
answer = 0
# 가장 무거운 사람과 가장 가벼운 사람을 짝지어서 태울 수 있으면 태우고,
# 아니면 무거운 사람 한명만 태웁니다. (가벼운 사람 한명만 태워도 똑같음)
# 투 포인터로 해결합니다.
light, heavy = 0, len(people) - 1
while light <= heavy:
# 예외처리: light == heavy인 경우 그 한명 태우면 끝입니다.
if light == heavy:
answer += 1
break
if people[light] + people[heavy] <= limit:
answer += 1
light += 1
heavy -= 1
else:
answer += 1
heavy -= 1
return answer
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges