Notice
Recent Posts
Recent Comments
Link
투케이2K
235. (java/자바) 알고리즘 : 예산 - for 문 , Arrays sort 배열 정렬 본문
[개발 환경 설정]
개발 툴 : Eclipse
개발 언어 : Java
[소스 코드]
package ex;
import java.util.Arrays;
public class MainActivity3 {
public static void main(String[] args) {
// TODO Auto-generated method stub
System.out.println("[Program Start]");
System.out.println("");
/**
* [예산]
* 1. S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다
* 2. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없지만, 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다
* 3. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하세요
* 4. 입출력 예시
* - 요청 예산 = [1,3,2,5,4] / 지원 가능 예산 = 9 / 지원 가능 부서 = 3
* - 요청 예산 = [2,2,3,3] / 지원 가능 예산 = 10 / 지원 가능 부서 = 4
* 5. 프로그래머스 사이트 : https://programmers.co.kr/learn/courses/30/lessons/12982
* */
// 초기 변수 선언 실시 [요청 배열]
int d[] = {1,3,2,5,4}; // 1번
//int d[] = {2,2,3,3}; // 2번
// 초기 변수 선언 실시 [보유하고 있는 예산]
int budget = 9; // 1번
//int budget = 10; // 2번
// 결과 확인 메소드 호출 실시
System.out.println("결과 : " + solution(d, budget));
}// 메인 종료
public static int solution(int req[], int money) {
// 결과를 반환할 변수 선언 실시
int result = 0;
// 인풋으로 들어온 데이터 확인 실시
System.out.println("input [req] : " + Arrays.toString(req));
System.out.println("input [money] : " + money);
System.out.println("");
// 로직 처리 실시
/**
* [세부 설명]
* 1. 전체 예산에 맞게 예산 신청을 들어온 부서 값을 제외 시킵니다
* 2. 전체 예산 값은 0 미만으로 떨어 질 수 없습니다
* 3. 목표는 예산 금액에 맞게 최대한 많은 부서를 지원해주기 위해서 예산 요청 배열을 정렬해야합니다
* */
// 먼저 인풋으로 들어온 배열 오름차순 (작은 순서) 정렬 실시 : 최대한 많은 부서를 지원해주기 위함
Arrays.sort(req);
System.out.println("sort [req] : " + Arrays.toString(req));
System.out.println("");
// for 반복문을 수행하면서 전체 예산에서 각 부서 요청 예산 빼기를 실시
for (int i=0; i<req.length; i++) {
money -= req[i]; // 전체 예산에서 각 번지 값을 뺀다
if(money < 0) break; // 더이상 지원할 예산이 없는 경우 break
result ++; // 카운트 증가 실시
}
// 결과 반환 실시
return result;
}
}// 클래스 종료
[결과 출력]
[요약 설명]
/**
* [예산]
* 1. S사에서는 각 부서에 필요한 물품을 지원해 주기 위해 부서별로 물품을 구매하는데 필요한 금액을 조사했습니다
* 2. 그러나, 전체 예산이 정해져 있기 때문에 모든 부서의 물품을 구매해 줄 수는 없지만, 최대한 많은 부서의 물품을 구매해 줄 수 있도록 하려고 합니다
* 3. 부서별로 신청한 금액이 들어있는 배열 d와 예산 budget이 매개변수로 주어질 때, 최대 몇 개의 부서에 물품을 지원할 수 있는지 return 하세요
* 4. 입출력 예시
* - 요청 예산 = [1,3,2,5,4] / 지원 가능 예산 = 9 / 지원 가능 부서 = 3
* - 요청 예산 = [2,2,3,3] / 지원 가능 예산 = 10 / 지원 가능 부서 = 4
* 5. 프로그래머스 사이트 : https://programmers.co.kr/learn/courses/30/lessons/12982
* */
반응형
'Java' 카테고리의 다른 글
237. (java/자바) list to hashset 변환 및 데이터 중복 제거 실시 (0) | 2021.09.08 |
---|---|
236. (java/자바) 알고리즘 : 스킬트리 - replaceAll 정규식 , 특정 문자 패턴 출력 (0) | 2021.08.24 |
234. (java/자바) 퍼센트 (percent) 값 계산 수행 실시 - String.format 소수점 제한 출력 (0) | 2021.08.20 |
233. (java/자바) 알고리즘 : 124 나라의 숫자 - 진법 , 규칙 값 치환 실시 (0) | 2021.08.11 |
232. (java/자바) matches 정규식 (RegEx) 사용법 정리 - 특수문자 제거 및 지정 문자 허용 (0) | 2021.08.10 |
Comments