본문 바로가기

알고리즘

프로그래머스, 예산

728x90

프로그래머스, 예산

 

예산

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

6개월전? 나의 풀이

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

 

왜 이렇게 풀었는지.. 생각 안나지만, 오늘 푼 풀이와 별반 다르지 않다.

 


다시 풀어보니, 이 문제는 그리디 문제였다.

6개월 전에는 그리디 개념도 몰랐던 나.

예산이 적은 부서부터 지급해야 최대한 많은 부서들을 지원할 수 있기 때문이다.

 

나의 풀이

d = [2,2,3,3]
budget = 10

def solution(d, budget):
    # 정렬
    d.sort()

    result = 0
    hap = 0
    for e in d:
        hap += e
        if budget >= hap:
            result += 1
    
    return result

print(solution(d, budget))

예산이 적은 부서부터 지원하기 위해 정렬 시켰다.

그리고 result를 0으로 초기화했다.

부서 예산을 더해준 뒤, 총 예산안에 들면 result를 하나씩 올려줬다.

'알고리즘' 카테고리의 다른 글

백준 2447번 별찍기 - 10  (0) 2023.07.31
백준 2869 달팽이는 올라가고 싶다  (0) 2023.07.17
백준 8983 사냥꾼  (0) 2023.07.12
[Hash Table] 백준 10816 숫자 카드 2  (0) 2023.06.11
백준 2470 두 용액  (0) 2023.06.01