Notice
Recent Posts
Recent Comments
Link
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[프로그래머스] - 예산 (자바/Java) 본문

카테고리 없음

[프로그래머스] - 예산 (자바/Java)

luke-king 2024. 5. 17. 19:07

 

 

 

 

 

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

 

프로그래머스

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

programmers.co.kr

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

 

풀이.


 

import java.util.Arrays;

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

 

오늘 문제는 " 예산 " 문제다.

문제는 어렵지 않고 나름 쉬운 문제였다.

배열 안에 있는 값들을 더해 budget 값과 비교해 작거나 같을 때 총 몇 번 카운트했는지 구하는 문제라 보면 된다.

그럼 풀이를 해보겠다.

 

1. 우선 배열의 길이만큼 루프를 돌려준다. 다음 res 변수를 생성하는데 res는 인덱스 값들을 차례대로 더한 값을 담는다.

 

2. 문제 지문에 budget의 값에 최대한 많은 부서의 물품을 구매 해준다 하니 Arrays.sort() 함수를 사용해 오름차순으로 정렬해 준다.

 

3. 정렬했다면 res에 증감연산자를 사용해 d [i]를 해준다.

 

4. res가 budget와 같거나 작을 경우의 조건식을 만들어 준 뒤 충족 할 때마다 1씩 카운트해준다. 그럼 끝이다.