728x90
반응형
[프로그래머스] 코딩테스트 연습 -> Summer/Winter Coding(~2018) -> 예산
https://school.programmers.co.kr/learn/courses/30/lessons/12982
해결 과정
일단 문제를 보았을 때는 어떻게 해결해야 하나 싶었다. 하지만 코드를 한 줄 한 줄 쓰다보니 단순하다는 것을 깨달았다.
먼저 Arrays.sort()로 배열을 정렬해야 한다. 정렬하게 되면 d 원소가 작은 순서대로 정렬되기 때문에 최대의 조건을 만족하게 된다.
먼저 예산의 합을 담을 hap 변수를 선언해주고, for문을 이용하여 hap에 원소를 누적하여 합해준다.
그러고 최대 부서를 나타낼 변수 answer에 +1을 해준다. (answer++)
다만 answer++을 실행하기 전에 if문의 조건으로 만약 hap이 budget보다 클 경우는 continue를 이용하여 벗어나준다.
소스 코드
import java.util.Arrays;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
int hap = 0;
Arrays.sort(d);
for (int i : d) {
hap += i;
if (hap > budget) {
continue;
}
answer++;
}
return answer;
}
}
728x90
반응형
'JAVA > Programmers' 카테고리의 다른 글
JAVA 프로그래머스 [3진법 뒤집기] 자바 Lv.1 (0) | 2023.08.11 |
---|---|
JAVA 프로그래머스 [같은 숫자는 싫어] 자바 Lv.1 (0) | 2023.08.10 |
JAVA 프로그래머스 [최대공약수와 최소공배수] 자바 Lv.1 (0) | 2023.08.10 |
JAVA 프로그래머스 [직사각형 별찍기] 자바 Lv.1 (0) | 2023.08.08 |
JAVA 프로그래머스 [행렬의 덧셈] 자바 Lv.1 (0) | 2023.08.08 |
댓글