본문 바로가기
JAVA/Programmers

JAVA 프로그래머스 [예산] 자바 Lv.1

by tripleup 2023. 8. 19.
728x90
반응형

[프로그래머스] 코딩테스트 연습 -> Summer/Winter Coding(~2018) -> 예산

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


해결 과정

 

일단 문제를 보았을 때는 어떻게 해결해야 하나 싶었다. 하지만 코드를 한 줄 한 줄 쓰다보니 단순하다는 것을 깨달았다.

 

먼저 Arrays.sort()로 배열을 정렬해야 한다. 정렬하게 되면 d 원소가 작은 순서대로 정렬되기 때문에 최대의 조건을 만족하게 된다.

 

먼저 예산의 합을 담을 hap 변수를 선언해주고, for문을 이용하여 hap에 원소를 누적하여 합해준다.

 

그러고 최대 부서를 나타낼 변수 answer에 +1을 해준다. (answer++)

다만 answer++을 실행하기 전에 if문의 조건으로 만약 hap이 budget보다 클 경우는 continue를 이용하여 벗어나준다.

 

소스 코드

 

import java.util.Arrays;

class Solution {
    public int solution(int[] d, int budget) {
        int answer = 0;
        int hap = 0;
        
        Arrays.sort(d);
        for (int i : d) {
            hap += i;
            if (hap > budget) {
                continue;
            }
            answer++;
        }   
        return answer;
    }
}

 


728x90
반응형

댓글