반응형
사이트명 : 프로그래머스(Programmers)
문제명 : 예산
언어 : 자바(Java)
문제를 잘못 이해해서 한참 고민했는데
막상 보니까 문제 설명에 비해 핵심이 단순했다
예산 안의 범위에서 최대 몇개의 부서(d)를 지원해 줄 수 있냐는 문제였는데
budget을 반드시 다 써야된다는 게 아니라
budget 안에서 최대 몇개의 d 배열의 값을 소모할 수 있냐는 말이다
내 풀이방법은 아래와 같은데
먼저 배열을 오름차순으로 정렬시켜 주는데
이러면 작은 값이 앞에, 큰 값이 뒤에 위치하게 된다
for문을 돌리면서 answer에 배열 값을 계속 더해주는데
여기서 answer의 값이 budget보다 커지게 된다면
for문을 돌린 횟수를 넣고 반환한다
for문이 끝나도록 budget의 값을 넘기지 않았다면
돌린 횟수를 넣고 answer를 반환하면 끝이 난다
마지막으로 프로그래머스에 바로 적용할 수 있는 코드는 다음과 같다
import java.util.Arrays;
class Solution {
public int solution(int[] d, int budget) {
int answer = 0;
int counter = 0;
Arrays.sort(d);
for(int i = 0; i<d.length; i++) {
answer = answer + d[i];
if(answer > budget) {
answer = counter;
break;
}
counter++;
}
answer = counter;
return answer;
}
}
반응형
'Language > 알고리즘 문제풀이' 카테고리의 다른 글
프로그래머스 N개의 최소공배수(Java) (0) | 2019.09.29 |
---|---|
프로그래머스 폰켓몬(Java) (0) | 2019.09.29 |
프로그래머스 x만큼 간격이 있는 n개의 숫자(Java) (0) | 2019.09.24 |
프로그래머스 행렬의 덧셈(Java) (0) | 2019.09.24 |
프로그래머스 점프와 순간 이동(Java) (0) | 2019.09.23 |
댓글