해피 코딩!

[프로그래머스] level 2 구명보트 본문

알고리즘

[프로그래머스] level 2 구명보트

지속가능한 성장을 2020. 12. 24. 21:48

문제 링크

# 해결 코드
def solution(people, limit):
    people.sort(reverse=True)
    answer= 0
    lst_cnt = len(people)-1
    while answer<= lst_cnt:
        if people[answer]+people[lst_cnt] <=limit:
            answer+=1
            lst_cnt-=1
            continue
        answer+=1
    return answer

탐욕 알고리즘의 풀이법은 정말 결국 풀이 코드를 보게 만드는 것 같다...

def solution(people, limit):
    people.sort()
    answer= 0
    lst_cnt = len(people)
    while lst_cnt >1:
        if people[0]+people[-1] <=limit:
            people.pop()
            people.pop(0)
            answer+=1
            lst_cnt-=2
            continue
        people.pop()
        lst_cnt-=1
        answer+=1

    answer+=lst_cnt
    return answer

해당 코드는 시간을 초과하였다. 인덱스를 통해 접근하여 시간을 아끼는 방법을 이번 문제를 풀며 터득하게 되었다.

'알고리즘' 카테고리의 다른 글

[백준] 10814 나이순 정렬  (0) 2020.12.28
[백준] 2231 분해합  (0) 2020.12.27
[백준] 로프 2217번  (0) 2020.12.24
[백준] 회의실 배정  (0) 2020.12.24
[백준] 동전 0  (0) 2020.12.23
Comments