구명보트 - python

고태희·2021년 12월 1일
0

알고리즘

목록 보기
2/15

텍스트## 문제설명

제한사항

예시

풀이

def solution(people, limit):
    answer = 0
    people.sort()
    i = 0
    j = len(people) - 1
    while i <= j:
        if people[i] + people[j] <= limit:
            i += 1
            j -= 1
        else:
            j -= 1
        answer += 1
    return answer

주어진 배열을 정렬한 다음 제일 앞을 (i = 0) 제일 뒤를 j = 길이 -1 로 둔다.

2명씩밖에 못타므로 앞과 뒤를 하나씩 뽑아서
limit을 초과하면 뒷사람만
초과하지 않으면 둘다 태우는 방식

del, remove를 사용할 필요없이 i / j 의 인덱스 비교를 통해 시간복잡도 줄임

0개의 댓글