본문 바로가기
문제풀이/프로그래머스

예산 / 프로그래머스 연습문제 / programmers / level1 / Java

by RUCKUS 2021. 7. 30.

https://programmers.co.kr/learn/courses/30/lessons/12982

 

코딩테스트 연습 - 예산

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는

programmers.co.kr


이번건 연습문제 수준이라 간단하게 작성하고 넘어간다.

예산을 배분할 수 있는 최대 부서 개수를 리턴하는 알고리즘인데,

단순히 Sort를 하여 오름차순으로 정렬 후 배열의 길이만큼 반복하면서 예산이 0이 될때까지 부서의 갯수를 더해주면 된다.

 

[작성코드]

package com.level01;

import java.util.Arrays;

public class Budget {

	public static void main(String[] args) {
		Budget bud = new Budget();
		bud.solution(new int [] {1,3,2,5,4}, 9);

	}

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

 

끝!

 


https://github.com/RUCKUSJERRY/practiceOfAlgorithm/blob/main/Prs_Pratice/src/com/level01/Budget.java

 

GitHub - RUCKUSJERRY/practiceOfAlgorithm

Contribute to RUCKUSJERRY/practiceOfAlgorithm development by creating an account on GitHub.

github.com