728x90
반응형
https://school.programmers.co.kr/learn/courses/30/lessons/12982
⭐️ 코드
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
반응형
'CodingTest > Programmers' 카테고리의 다른 글
[프로그래머스/Programmers] 줄 서는 방법 (Java - Level2) (0) | 2023.01.11 |
---|---|
[프로그래머스/Programmers] [1차] 비밀지도 (Java - BinaryString) (0) | 2023.01.06 |
[프로그래머스/Programmers] 최대공약수와 최소공배수 (Java - 수학) (0) | 2023.01.03 |
[프로그래머스/Programmers] 문자열 다루기 기본 (Java - 문자열) (2) | 2023.01.02 |
[프로그래머스/Programmers] 신고 결과 받기 (Java - HashMap) (0) | 2022.12.21 |