그리디 | 프로그래머스 고득점kit 구명보트 | Python

Table of Contents


프로그래머스 고득점kit 구명보트 | Python

📌 프로그래머스 고득점kit 구명보트 문제 바로가기


🔎 문제 설명

💚 Level 2

- 난이도 ★☆☆☆
- 그리디
- 투포인터

문제 조건을 잘 보자!

문제를 잘 안 읽어서 시간이 생각보다 오래 걸렸다.


문제 조건은 다음과 같다.

  • ⭐️ 구명보트는 작아서 한 번에 최대 2명씩 밖에 탈 수 없다.
  • 구명보트의 무게 제한을 초과하여 탈 수 없다.
  • 구명보틑를 최대한 적게 사용하여 모든 사람을 구출하자


최대 두 사람만 탑승할 수 있다는 조건을 생각하면 제일 가벼운 사람과 제일 무거운 사람을 엮어줘야 한다. 가벼운 사람과 무거운 사람을 투 포인터 로 접근해 계산해 주었고, 더 자세한 코드는 밑에 남겨두었다.



💻 내 코드

def solution(people, limit):
    answer = 0
    people = sorted(people)
    start, end = 0, len(people) - 1

    # 제일 가벼운 - 무거운 사람 묶는 게 Best
    while start < end:
        if people[start] + people[end] <= limit:
            start += 1
            answer += 1
        end -= 1
            
    return len(people) - answer




 


💙 You need to log in to GitHub to write comments. 💙
If you can't see comments, please refresh page(F5).