PS/Programmers

[level1, Arrays] 예산

git-sun 2023. 3. 25. 00:16

1. 문제

 

 

 

 

 

 

2. 문제 해결 논리

1. 문제 이해

  • 주어진 것
    • int[] d    //각 부서가 신청한 금액
    • int budget    //정해진 예산
  • 요구되는 것
    • int answer    //최대로 지원할 수 있는 부서의 수

2. 데이터 구조 결정

  • Arrays, 반복문, int 사용

3. 알고리즘 설계

  • Arrays.sort로 주어진 정수 배열 d를 정렬
  • 반복문을 통해 d의 요소를 하나씩 순회
  • 주어진 예산에서 d의 요소중 가장 작은 금액부터 차감
  • 예산이 마이너스가 되는 경우에 반복문 탈출
  • 차감이 1회 이루어질 때마다 answer의 값 +1

 

 

 

 

 

 

3. 코드 구현

import java.util.*;

class Solution {
    public int solution(int[] d, int budget) {
        //예산 지원 부서 카운팅을 위한 변수
        int answer = 0;
        //배열 d 오름차순 정렬
        Arrays.sort(d);
        //반복문으로 배열 d의 가장 작은 값부터 순회
        for(int i=0;i<d.length;i++){
            //예산에서 차감
            budget -= d[i];
            //예산이 마이너스가 되는 경우, 반복문 탈출
            if(budget<0) break;
            //예산이 마이너스가 안되는 경우, 부서 카운팅 +1
            answer++;
        }
        return answer;
    }
}

 

 

 

 

 

 

* Reference

https://school.programmers.co.kr/learn/courses/30/lessons/12982

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

반응형