프로그래머스 Lv.1 예산
![](https://t1.daumcdn.net/keditor/emoticon/face/large/073.png)
예산 내에서 각 부서에 필요한 물품을 지원해 준다.
최대 몇 개의 부서에 물품을 지원할 수 있는지 구하는 문제!
d는 부서별로 신청한 금액이 들어있는 배열
budget은 예산
** 풀이 방법
d배열을 오름차순 정렬하면 금액이 작은 순서대로 더해지기 때문에 최대 개수를 쉽게 구할 수 있다.
Arrays.sort(d);
반복문을 통해 예산 내에서 원소들을 하나씩 더해나가고 최대개수를 하나씩 늘린다.
예산이 같아지면 반복문을 빠져나온다.
원소들을 더한 값이 예산보다 커지면 최대개수를 뺀다.
for (int i=0; i<d.length; i++) {
hap+=d[i];
answer++;
if (hap==budget)
break;
else if(hap>budget)
answer--;
}
<> 전체 코드 </>
import java.util.*;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0; //최대개수
int hap = 0; //d 원소 합
Arrays.sort(d); //오름차순 정렬
for (int i=0; i<d.length; i++) {
hap+=d[i];
answer++;
if (hap==budget) {
break;
} else if(hap>budget) {
answer--;
}
}
return answer;
}
}
반응형
'개발로그 > 알고리즘' 카테고리의 다른 글
프로그래머스 Lv.0 외계행성의 나이 (0) | 2023.07.14 |
---|---|
프로그래머스 Lv.0 한 번만 등장한 문자 (0) | 2023.07.13 |
프로그래머스 Lv.0 모스부호(1) (0) | 2023.07.11 |
프로그래머스 Lv.0 날짜 비교하기 (0) | 2023.07.10 |
프로그래머스 Lv.1 성격 유형 검사하기 (0) | 2023.07.06 |
댓글