본문 바로가기
알고리즘/Programmers

[Programmers] 예산

by 소꿍 2021. 5. 6.

programmers.co.kr/learn/courses/30/lessons/12982

 

코딩테스트 연습 - 예산

S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는

programmers.co.kr

처음엔 배열 d의 모든 가능한 조합을 탐색해야 하는 줄 알고 고민했는데,

배열을 정렬한 후 반복문으로 요소의 합을 구해서 budget을 초과하기 전까지의 개수를 반환하면 되는 거였다..!

 

주어진 배열을 문제에 적합하게 바꿔서 생각하면 쉬운 문제였는데, 주어진 조건 그대로만 생각해서 어렵게 접근했다.

연습을 많이 해서 좀 더 유연하게 생각할 수 있게 해야겠다.

 

Java

static int solution(int[] d, int budget) {
  int answer = 0;
  Arrays.sort(d);
  int sum = 0;
  for (int i = 0; i < d.length; ++i) {
    sum += d[i];
    if (sum > budget) {
      answer = i;
      break;
    }
    answer = i + 1;
  }        
  return answer;
}

 

댓글