문제 설명 및 제한사항
아이디어 및 해결 방법
코드
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
Python
복사
출처
프로그래머스 코딩테스트 연습 https://school.programmers.co.kr/learn/challenges