프로그래머스 연습문제 - 구명보트 (level2)
https://velog.io/@sem/프로그래머스-LEVEL2-구명보트-Python
from collections import deque
def solution(people, limit):
answer = 0
people = deque(sorted(people, reverse = True))
while len(people) > 1:
if people[0] + people[-1] <= limit: # 최댓값과 최솟값 묶어서 보트태움
answer += 1
people.pop() #최소 빼내고
people.popleft() #최대 빼내고
else:
answer += 1
people.popleft()
if people: #people에 1명 남아있는 경우 처리
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