💡코딩테스트/프로그래머스

[프로그래머스 | 파이썬 python] 구명보트

두_두 2023. 4. 21. 15:50

🌏 문제

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

👽 풀이

💫 첫번째 풀이

보트를 오름차순으로 정렬한 후에 보트에 탄 사람의 무게가 무게제한을 넘지 않은 경우 계속 그 보트에 태우고 무게가 초과되면 새로운 보트에 태우는 방식으로 풀었다

 

근데 틀렸다 ㅎ ➡️ 문제를 제대로 안읽어서..😢 구명보트는 최대 2명씩 밖에 태울 수 없다!

def solution(people, limit):
    answer = []
    people.sort()
    
    weight = 0
    for p in people:
        if len(answer) == 0:
            answer.append([p])
        elif sum(answer[-1]) + p <= limit:
            answer[-1].append(p)
        else:
            answer.append([p])
        
        
    return len(answer)

 

💫 두번째 풀이

2명씩 밖에 탈 수 없다면 (작은 무게 + 큰 무게) 이렇게 짝을 지어줘야지 적은 보트를 이용할 수 있게된다.

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

 

문제를 잘 읽자

 

728x90
댓글수0