알고리즘 풀이 방법입니다.
문제(Problem) -> 생각(Think) -> 해결책(Solution) -> 리뷰(Review) 를 통해서 정리해서 작성합니다.
Problem📄
https://programmers.co.kr/learn/courses/30/lessons/12982
코딩테스트 연습 - 예산
S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는
programmers.co.kr
Think🤔
예산을 이용해서 최대한 많은 부서에게 물품을 지원할 수 있는 방법을 찾아야 하므로,
제일 작은 예산인 부서부터 정렬 시켜서 카운트를 세면 된다.
Solution✍
import java.util.Arrays;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
int i = 0;
Arrays.sort(d);
while(i < d.length){
if(budget >= d[i]){
answer++;
budget -= d[i];
}
i++;
}
return answer;
}
}
Review🤩
작은 수 부터 확인하니깐 if문 위치를 조정하는 것이 더 효율적이다!
import java.util.Arrays;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
Arrays.sort(d);
for(int i=0; i<d.length; i++){
if(budget < d[i]){break;}
budget -= d[i];
answer++;
}
return answer;
}
}
'Algorithm' 카테고리의 다른 글
[프로그래머스] 오랜 기간 보호한 동물 (1) , (2) (0) | 2022.07.07 |
---|---|
[프로그래머스] GROUP BY 3문제 (0) | 2022.06.30 |
[프로그래머스] 나누어 떨어지는 숫자 배열 (0) | 2022.05.06 |
[프로그래머스] 완주하지 못한 선수 (0) | 2022.03.16 |
[프로그래머스] 나머지가 1이 되는 수 찾기 , 같은 숫자는 (0) | 2022.03.09 |