나의 개발일지

[프로그래머스] Lv.2 구명보트 [Python, 파이썬] 본문

프로그래머스

[프로그래머스] Lv.2 구명보트 [Python, 파이썬]

YoonJuHan 2023. 5. 16. 19:24

 

def solution(people, limit):

    answer = 0
    people.sort()

    l, r = 0, len(people) - 1	# 가장 가벼운 사람과, 가장 무거운 사람에 포인터를 둔다.

    while l <= r:	# 두 개의 포인터가 교차되면 멈춤
        if people[l] + people[r] <= limit:	# 포인터의 합이 limit보다 작거나 같으면 양쪽 포인터 이동
            l += 1	# -> 방향으로 이동
            r -= 1	# <- 방향으로 이동
        else:	# 두 사람 무게의 합이 limit 보다 크면
            r -= 1	# 무거운쪽만 <- 방향으로 이동
        answer += 1		# 배 갯수 증가

    return answer
Comments