https://school.programmers.co.kr/learn/courses/30/lessons/42885
def solution(people, limit):
answer = 0
people.sort() # 정렬
start, end = 0, len(people) - 1
while start <= end:
answer += 1 # if문 충족 여부와 상관없이 +1
if people[start] + people[end] <= limit:
start += 1
end -= 1
return answer
if문을 충족하면 start, end를 건드려 배열 길이가 2만큼 줄어들고 answer은 1 증가한다.
if문을 충족하지 않으면 end만 건드렬 배열 길이가 1만큼 줄어들고 answer은 1 증가한다.
-> if문에 상관없이 answer은 1씩 증가한다.
투 포인터를 이용해 시간을 줄였다.
def solution(people, limit):
answer = 0
people.sort()
for i in range(len(people)):
for j in range(1, len(people)):
if i >= j:
continue
elif people[i] + people[-j] <= limit:
people.pop(i)
people.pop(-j)
answer += 1
return answer + len(people)
deque를 이용했으면 정답이지 않았을까?