Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 |
Tags
- 혼자 공부하는 C언어
- list 컬렉션
- stream
- datastructure
- insertion sort
- Stack
- Serialization
- 윤성우의 열혈 자료구조
- Graph
- s
- 메모리구조
- Selection Sorting
- 이스케이프 문자
- C programming
- R
- buffer
- coding test
- JSON
- C 언어 코딩 도장
- Algorithm
- 이것이 자바다
- 알기쉬운 알고리즘
- 윤성우 열혈자료구조
Archives
- Today
- Total
Engineering Note
[Programmers] 예산 본문
Link : https://school.programmers.co.kr/learn/courses/30/lessons/12982?language=java
Note
문제를 해석해보면 각 부서별로 물품 구매를 위해 필요한 금액이 있고, 회사는 전체 예산내에서 각 부서를 지원해줄 수 있다. 이때 최대 몇 개의 부서를 지원할 수 있는지 return 하는 문제이다. 단, 부서별 지원금액은 신청한 금액만큼을 모두 지원해주어야 한다.
나는 평소에 문제를 문자보다 시각적으로 변환해서 이해하는 것을 좋아하여 시각적으로 문제를 표현해 보았다.그리고 다음과 같은 문제와 같음을 이해할 수 있었다.
budget 크기의 통에 크기가 부서별 신청 금액에 비례하는 상자를 집어 넣을 때 가장 많은 상자를 넣는 방법은?으로 해석할 수 있다.
이렇게 되면 문제를 풀이할 방법이 더 명확해진다. 가장 작은 크기의 상자부터 채울 수록 넣을 수 있는 상자수가 많아 진다.
가장 작은 값부터 차례로 넣기위해 문제에 주어진 부서별 예산값을 정렬하고 0인덱스부터 순차적으로 budget보다 작으면 budget의 값을 줄이면서 문제를 해결할 수 있다.
Code
```
import java.util.Scanner;
public class Main{
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int nums[] = new int[5];
for(int i = 0; i < 5; ++i){
System.out.println(nums[i]);
}
}
}
``
'Problem Solving > Programmers' 카테고리의 다른 글
[Programmers] 전력망 둘로 나누기 (0) | 2022.04.27 |
---|---|
[Programmers] 가장 먼 노드 (0) | 2022.03.21 |
[Programmers] 큰 수 만들기 (0) | 2022.02.23 |
[Programmers] 기능개발 (0) | 2022.02.22 |
[Programmers] 점프와 순간 이동 (0) | 2022.02.02 |
Comments