[프로그래머스/Python] - Lv2 / 구명보트

Chooooo·2023년 3월 6일
0
post-thumbnail

구명보트

level2-그리디-구명보트

from collections import deque
def solution(people, limit):
    #최대 2명
    #최대한 적게 사용하여.
    data = people
    n = len(data)
    data.sort()
    cnt = 0
    dq = deque(data)

    while True:
        if len(dq) == 0:
            break
        elif len(dq) == 1:
            cnt += 1
            dq.popleft()  
        elif dq[0] + dq[-1] <= limit:
            cnt += 1
            dq.popleft()
            dq.pop()
        else:
            cnt += 1
            dq.pop()
    print(cnt)
    return cnt
        

코멘트

해당 문제는 보트를 가장 적게 타야 하는게 그 핵심이 항상 몸무게가 가장 큰 사람과 가장 작은 사람이 같이 타야한다는 것이다. 묶어서 처리한다는 생각을 했으면 해당 문제 아이디어를 모두 처리한 것과 같다.

즉 그리디

  • 문제를 해결하는 과정에서 그 순간순간 최적의 선택을 하면서 최종 값을 도출했으면 됐다.
profile
back-end, 지속 성장 가능한 개발자를 향하여

0개의 댓글