본문 바로가기

코딩/매일 한 문제 이상

[매일 한 문제 이상] 프로그래머스 - 예산

 

def solution(d, budget):
    answer = 0
    sum = 0
    count = 0
    d.sort(reverse = True)
    max = 0
    total = len(d)

    for i in range(total):
        for j in range(i,total):                
            sum += d[j]
            if sum <= budget:
                count += 1
                if max < count:
                    max = count
                if j+1 >= total:
                    sum = 0
                    count = 0
            else:
                sum = 0
                count = 0
                break

    answer = max
    return answer

 

아직도 C 언어 적으로 짜는거 같다. 이중 포문이라니 ㅠㅠ 극혐이지만 어쩔수 없다

 

 

다른사람 풀이

def solution(d, budget):
    d.sort()
    while budget < sum(d):
        d.pop()
    return len(d)

 

어느정도 내공이 쌓여야 이렇게 간략하게 되는지...!

 

 

def solution(d, budget):
    answer = 0
    sum =0
    sortD=sorted(d)
    for i in sortD:
        if (sum+i)<=budget:
            sum+=i
            answer+=1
    return answer

?? 처음에 이것과 비슷하게 했으나 테스트케이스 중 몇개가 실패가 떠서 이중for문으로 난리부르스를 췄는데..?!

 

이제 뭐가 뭔지 모르겠다 - ㅅ-