본문 바로가기

문제 풀이/Programmers

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

문제 출처 - Programmers

문제는 여기

 

프로그래머스

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

programmers.co.kr


[풀이]

1. 예산 신청 배열을 정렬한다.

2. 배열만큼 반복하면서 budget보다 작은 값이라면 budget에서 값을 빼고 answer을 증가시켜준다.

3. budget이 0보다 작아지면 탐색을 종료한다.

4. 결과를 출력한다.

[접근]

1. 가장 많은 부서에 지원을 해줘야 하므로 요구 금액이 적은 순으로 정렬해서 해당 금액만큼 지원을 해주면 되겠다고 생각하였다.

[코드]

import java.util.*;

class Solution {
    public int solution(int[] d, int budget) {
        int answer = 0;
        
        Arrays.sort(d);
        
        for (int i = 0; i < d.length; i++) {
            if (d[i] <= budget) {
                answer++;
                budget -= d[i];
            }
            
            if (budget <= 0)
                break;
        }
        
        return answer;
    }
}