알고리즘

[프로그래머스 Lv1] 예산 (Python)

lwkejpf 2022. 7. 2. 13:37

 


 

def solution(d, budget):
    answer = 0
    d.sort()
    cnt = 1
    now = d[0]
    
    for i in d[1:] :
        if now + i > budget :
            break
        else :
            cnt += 1
            now += i
    return cnt

 

실행했더니 테스트 케이스 하나가 실패라고 떴다 ,,

 

임의로 테케 몇 개 집어넣어서 돌려보다가 드디어 발견함

 

생각해보니까 초기값을 1로 주면 안 됐음 ㅎㅎ

budget 이 제일 작은 금액보다 더 작을 수도 있기 때문에 ,,

 


 

def solution(d, budget):
    answer = 0
    d.sort()
    cnt = 0
    now = 0
    
    for i in d :
        if now + i > budget :
            break
        else :
            cnt += 1
            now += i
    return cnt

 

당연히 제일 작은 금액보다는 budget 이 크겠지 생각한 내가 바보였음

 

예를 들어서 d = [3, 4, 5], budget = 1 이면 결국 0 개가 나와야 하는데 

처음에 짰던 코드는 무조건 1 이상이 나오게 됨 ,, 암튼 해결 !!