Pythonアルゴリズム-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
Reference
この問題について(Pythonアルゴリズム-93(プログラマー)救命ボート), 我々は、より多くの情報をここで見つけました https://velog.io/@jiffydev/ddテキストは自由に共有またはコピーできます。ただし、このドキュメントのURLは参考URLとして残しておいてください。
Collection and Share based on the CC Protocol