로직
-
구명보트는 2명만 탈 수 있다.
-
사람이 결국 모두 다 보트를 타야하니까, 몸무게순으로 정렬한 후, 가장 몸무게 적은 사람(l)이랑 많은 사람(h)을 같이 태우려 해본다. 먄약 l + h가 limit보다 작으면 ok, 크면 h인덱스를 하나 줄여서 비교해본다.
-
h인덱스가 l인덱스보다 클때 진행한다
코드
def solution(people, limit):
# 최대 2명씩 탄다.
people = sorted(people) # [40, 50, 60, 80]
i = 0
j = len(people) - 1
cnt = 0
while i < j:
if people[i] + people[j] <= limit:
cnt += 1
i += 1
j -= 1
else:
j -= 1
return len(people) - cnt
'알고리즘' 카테고리의 다른 글
[programmers] 폰켓몬 (0) | 2020.09.08 |
---|---|
[programmers] 타겟넘버 (0) | 2020.09.08 |
[programmers] 카펫 (0) | 2020.09.08 |
[programmers] 단속카메라 (0) | 2020.09.08 |
[programmers] 후보키 (0) | 2020.09.04 |