https://programmers.co.kr/learn/courses/30/lessons/42885
def solution(people, limit):
answer = 0
people.sort(reverse = True)
capacity = limit
i=0
j=len(people)-1
while(1):
capacity = limit - people[i]
if capacity >= people[j] :
answer += 1
i += 1
j -= 1
else :
answer += 1
i += 1
if i == j:
answer += 1
break
elif i > j:
break
return answer
def solution(people, limit):
answer = 0
people.sort(reverse = True)
i,j = 0,len(people)-1
while i<j:
if people[i]+people[j] <= limit:
j -= 1
answer += 1
i += 1
if i == j:
answer += 1
return answer
처음에는 태워보낸 사람들을 pop연산으로 배열에서 빼주면서 다 사라질때까지 돌아가게끔 하려고했는데 중간에 pop을 하다보니 인덱스가 바뀌어서 어려움을 겪었다. 또 pop을 하게되면 시간복잡도가 올라가서 효율성테스트 통과를 못한다고 한다.
인덱스만 가지고서 비교하는방향으로 생각할수있도록 해야겠다.
생각나는대로 막적다보니 초기코드는 처리가 중복되는부분도 있고 난잡해진?.. 느낌이 있어서 조금더 짧게 깔끔하게 정리해보았다. 논리는 완전히 똑같은 코드이므로 속도는 뭐 똑같을것같다. 짧으면 고수같아보여서 간지용으로 해봤다. 다른코드 보니깐 더 짧게줄일수도 있던데 약간 달라지는점이있어서 그냥 내코드 내에서만 줄였다.
끝!