개발자 성장 기록/코테
[프로그래머스] 구명보트
으노방
2022. 9. 11. 17:17
1차 풀이
def solution(people, limit):
answer = 0
v = []
people.sort()
print(people)
for p in people:
v.append(p)
if sum(v) == limit:
v = []
answer+=1
elif sum(v) > limit:
del v[0]
answer+=1
else:
continue
return answer+1
참혹...
어느 블로그에서 봤는데 del, remove, pop 쓰면 효율성에서 실패 뜬다고 한다.
그리디 문제라서 indexing으로 비교해야 되나 보다....
보트에 최대 2명 탈 수 있는 걸 뒤늦게 봤다...
도저히 머리가 안 굴러가서 못 풀겠다...ㅠㅠㅠ
참고풀이
def solution(people, limit):
cnt = 0
people.sort()
i = 0
j = len(people)-1
while i <= j:
cnt+=1
if people[j]+people[i]<=limit:
i+=1
j-=1
return cnt