프로그래머스 연습문제 - 구명보트 (level2)

j_wisdom_h·2022년 11월 24일
0

CodingTest

목록 보기
17/58
post-thumbnail

프로그래머스 연습문제 - 구명보트 (level2)

문제설명


제한사항 & 입출력 예

찾아본 코드

https://velog.io/@sem/프로그래머스-LEVEL2-구명보트-Python

from collections import deque

def solution(people, limit):
    answer = 0
    people = deque(sorted(people, reverse = True))
    
    while len(people) > 1:
        if people[0] + people[-1] <= limit: # 최댓값과 최솟값 묶어서 보트태움
            answer += 1
            people.pop()    #최소 빼내고
            people.popleft()    #최대 빼내고
        else:
            answer += 1
            people.popleft()
            
    if people:  #people에 1명 남아있는 경우 처리
        answer += 1
                
    return answer

그리디 문제는 한 번 풀어본 적이 있는데, 아직 너무 낯설다..
그리디 공부해서 다음엔 꼭 내 힘으로 풀어봐야지!!

다른 코드


def solution(people, limit) :
    answer = 0
    people.sort()

    a = 0
    b = len(people) - 1
    while a < b :
        if people[b] + people[a] <= limit :
            a += 1
            answer += 1
        b -= 1
    return len(people) - answer
profile
뚜잇뚜잇 FE개발자

0개의 댓글