LEVEL2/구명보트

Q·2021년 8월 6일
0

문제 설명


전체 코드

def solution(people, limit):
    people.sort()

    right = 0
    left = len(people) - 1

    count = 0
    while left >= right:
        if people[right] + people[left] > limit:
            left -= 1
            count += 1
        else:
            right += 1
            left -= 1
            count += 1
       
    return count

해결 방법

풀이법을 생각 해내면 쉬운문제이고 아니라면 어렵게 빠지는 문제이다. people 리스트를 일단 오름차순으로 정렬 시킨뒤 맨 앞의 인덱스와 맨 뒤의 인덱스를 각각 right, left로 만들고 people[right] + people[left] 값이 limit 보다 크다면 맨 뒤에 있는 left 값을 앞으로 한칸 땡겨오고 count에 +1 한다. 만약 그게 아니라면 right를 +1시키고 left를 -1를 한 뒤에 count를 +1 한다.

profile
Data Engineer

0개의 댓글

관련 채용 정보