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
반응형