본문 바로가기

알고리즘 문제

프로그래머스 저울

시간 어떻게 시간을 줄여야하는지 생각이 안나 검색해서 방법을 찾음


변수 s의 초기값을 1이라고 하고 현재 무게가 s보다 크면 종료한다.

가벼운 무게부터 s에 누적한다.


s의 초기값이 1이므로 누적된 값보다 큰 값이 나오면 거기에 도달할 방법이 없다.


for문이 종료되면 weight 배열의 모든 값의 누적보다 1 큰 값이 s에 있다. 그러므로 모든 무게 추를 사용해도 못구하는 최소 값이다. 바로 반환해주면 답이다.

def solution(weight):
weight.sort()
length=len(weight)
s=1
for i in range(length):
if s<weight[i]:
break
s+=weight[i]
return s


http://gall.dcinside.com/mgallery/board/view?id=ps&no=1208

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