레벨2 (실패) 문제
(코드는 잘 작동하지만, 효율성에서 탈락)
def solution(people, limit):
ship = 0
people.sort(reverse = True)
while people:
if ( len(people) >= 2 and people[0] + people[-1] <= limit):
del people[0]
del people[-1]
ship += 1
else:
del people[0]
ship += 1
return ship
def solution(people, limit):
ship = 0
people.sort(reverse = True)
left = 0
right = len(people) - 1
while left <= right:
if ( len(people) >= 2 and people[left] + people[right] <= limit):
left += 1
right -= 1
ship += 1
else:
left += 1
ship += 1
return ship
del, remove, pop 등 리스트를 삭제하는 함수를 사용하면 시간 초과가 뜬다. 따라서 인덱스 값을 증감하는 방식으로 코드를 짰다.
while문 조건을 생각하는 것이 어려웠다.
생각을 오래해도 로직이 떠오르지 않는다면, 다른 방법이나 다른 라이브러리를 사용하자!