Search
Duplicate

구명보트

문제 설명 및 제한사항

아이디어 및 해결 방법

코드

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