🙈

⃝ 동글동글 ⃝

🪐ᐩ˖ 🍎

CodingTest/Programmers

[프로그래머스/Programmers] 예산 (Java - 알고리즘)

JONG_UK 2023. 1. 4. 11:06
728x90
반응형

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;
        // 최대 지원해 줄 수 있는 부서의 수를 구해야 하기 때문에 sort를 통해 오름차순으로 배열
        Arrays.sort(d);
        for (int i = 0; i < d.length; i++) {
            if(budget <= 0) {
                break;
            }
            if (d[i] <= budget) {
                answer++;
                budget -= d[i];
            } 
        }
        return answer;
    }
}

💡 문제 풀이

처음 문제를 보면 뭔가 살짝 복잡하다. 처음엔 이 문제를 풀려면 완전탐색을 사용해야 할까 라는 생각도 들었다. 하지만 결국 출력하는 것은 예산으로 지원해 줄 수 있는 부서의 최대 수를 구하는 것이다. 그래서 생각의 전환이 필요하다 생각했다.

d [ ] 배열을 정렬을 시키면 안 된다는 제한사항이 없으므로 d [ ] 배열에서 가장 낮은 수부터 하나씩 예산에서 빼주면 쉽게 답을 찾을 수 있었다.

 


👀 후기

크게 어려운 문제는 아니었지만 내가 얼마나 빠르게 문제에서 원하는 답에 대한 로직을 생각하는가에 따라 문제 푸는 시간이 좀 달라질 것 같은 문제다. 

728x90
반응형