프로그래머스|구명보트

README·2022년 12월 20일
0

파이썬 PS풀이

목록 보기
103/136

문제 설명

사람들의 무게와 구명보트가 버틸 수 있는 최대 무게를 입력받은 뒤 모든 사람을 태우기 위해 구명보트가 몇 대 필요한지 구하는 문제입니다. 구명보트에는 무게와 상관없이 최대 2명까지만 탑승가능합니다.

작동 순서

  1. 사람들의 무게와 구명보트의 최대 무게를 입력받습니다.
  2. 사람들의 무게를 크기순으로 정렬합니다.
  3. 남은 사람 중 무게가 가장 많이 나가는 사람부터 구명보트에 태운 뒤 그 보트에 남은 사람 중 무게가 가장 적게 나가는 사람을 태울 수 있는지 확인하고 태울 수 있을 경우 보트에 태웁니다.
  4. 3번 과정을 반복하고 모든 사람을 태웠으면 태운 보트의 개수를 출력합니다.

소스코드

def solution(people, limit):
    answer = 0
    people.sort()
    
    light = 0
    heavy = len(people)-1
    
    while heavy >= light:
        answer += 1
        weight = 0
        weight += people[heavy]
        heavy -= 1
        if weight+people[light] <= limit:
            light += 1
    return answer
profile
INTP 개발자 지망생

0개의 댓글