본문 바로가기

알고리즘 문제

프로그래머스 저울 [시간초과..]

답을 맞추지만 시간 초과..

-> 해결 http://oneshottenkill.tistory.com/377

def solution(weight):
weight.sort()
length=len(weight)
weight.reverse()
#print(weight)
w=1
while True:
s=w
#print('시도 무게:',s)
for i in range(length):
#print('뺴기 전:',s)
s-=weight[i]
#print('뺀 후:',s)
if s<0:#무게를 너무 많이 빼서 0보다 작을 경우
s+=weight[i] #뺀 무게를 다시 더해주고
i+=1 #더 가벼운 무게로 시도
elif s==0: #0이면 무게 딱 맞춤
break
elif i==length-1 and s>=1: #끝까지 시도했음에도 무게가 남아있다면 측정 불가
return w
w+=1
print(solution([3, 1, 6, 2, 7, 30, 1]))


출처 https://programmers.co.kr/learn/courses/30/lessons/42886?language=python3