문제

 

내가 작성한 코드 (틀림)
# 구명보트는 작아서 한 번에 최대 2명밖에 탈 수 없음
# 무게 제한도 존재
# 구명 보트를 최대한 적게 사용하여 모든 사람을 구출하려고 한다.
# 사람들의 몸무게를 담을 배열 people / 구명보트의 무게 제한 limit 매개변수
from collections import deque


def solution(people, limit):
    people.sort()
    people = deque(people)
    cnt = 0
    weight = 0
    
    if len(people) == 1:
        return 1
    
    else:
        while list(people):
            max_v = people.pop()

            if limit - max_v < people[0]:
                cnt += 1
            else:
                if len(people) >= 2:                    
                    weight += max_v
                    min_v = people.popleft()
                    weight += min_v
                else:
                    cnt += 1
                    break
        return cnt

> 아... 이번건 맞출 수 있을거 같았는데.... 어디가 문제지...ㅜㅜ

 

참고 코드
from collections import deque

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

    # 보트는 2명씩만 탈 수 있고 무게 제한도 있음.
    q = deque(people)
    w = 0
    cnt = 0
    while q:
        if len(q) >= 2:
            if q[0] + q[-1] <= limit:
                q.pop()
                q.popleft()
                boat += 1
            elif q[0] + q[-1] > limit:
                q.pop()
                boat += 1
        else:
            if q[0] <= limit:
                q.pop()
                boat += 1
    return boat

> 아.... 유사했는데... 쓰읍.... 다음에는 좀 더 잘해보자!!!

+ Recent posts