파이썬 알고리즘-93 (프로그래머스) 구명보트
코드
from collections import deque
def solution(people, limit):
answer = 0
people.sort(reverse=True)
people=deque(people)
while people:
tmp=0
tmp+=people.popleft()
# people에 0명 들어있으면 break
if not people:
answer+=1
break
# 큰 것끼리 우선 더해봄
if tmp+people[0]<=limit:
people.popleft()
answer+=1
# 안 될 경우 큰 것 + 작은 것
elif tmp+people[-1]<=limit:
people.pop()
answer+=1
# 한 명밖에 못 탈 경우
else:
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
Author And Source
이 문제에 관하여(파이썬 알고리즘-93 (프로그래머스) 구명보트), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jiffydev/dd저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)