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
반응형
'PS > Programmers' 카테고리의 다른 글
[level1, 비트 연산] [1차] 비밀지도 (0) | 2023.03.27 |
---|---|
[level1, Arrays] 삼총사 (0) | 2023.03.26 |
[level1, Character] 시저 암호 (1) | 2023.03.24 |
[level1, index] 이상한 문자 만들기 (0) | 2023.03.23 |
[level1, 진법] 3진법 뒤집기 (0) | 2023.03.21 |