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 | 31 |
Tags
- 프로그래머스 이중우선순위큐 자바
- JPA
- CJ DBASE&
- BFS
- ansi sql 단점
- SQL
- 개발자 면접 준비
- 프로그래머스 이중우선순위큐 java
- DP
- Spring Boot
- 이중우선순위큐 자바
- oracle ansi sql
- IT 면접 준비
- Gradle
- 이분탐색
- Java
- 디베이스앤 인턴 후기
- 프로그래머스 이중우선순위큐
- DFS
- 그리디
- 백트래킹
- DBASE&
- 이중우선순위큐 java
- 백준
- 위상정렬
- 프로그래머스
- ansi sql 장점
- 면접 필수 질문
- 디베이스앤
- oracle ansi
Archives
- Today
- Total
쉬운 프로그래밍
[알고리즘] 백준 11047 동전 0 - JAVA 본문
그리디는 매 시점에 최선의 선택을 하는 알고리즘이다.
입력으로 오름차순으로 정렬된 동전 배열을 주었기에 배열의 마지막 인덱스부터 반복문을 돌린다.
딱히 그리디 알고리즘을 따로 공부하지 않아도 풀 수 있는 문제인 것 같다.
코드 설명은 주석으로 달아놨다.
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
public class BOJ_11047 {
static int n;
static int k;
static int[] coin;
static int count = 0;
public static void main(String[] args) throws Exception {
// input
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String s = br.readLine();
StringTokenizer st = new StringTokenizer(s, " ");
n = Integer.parseInt(st.nextToken());
k = Integer.parseInt(st.nextToken());
coin = new int[n];
for (int i = 0; i < n; i++) {
s = br.readLine();
coin[i] = Integer.parseInt(s);
}
// input end
// coin 배열은 오름차순으로 정렬되어있으므로 마지막 인덱스부터 반복문 시작
for (int i = n - 1; i >= 0; i--) {
// 현재 시점 돈이 coin[i]보다 작아야함
// 이 시점에 증가하는 동전의 개수는 k / coin[i]의 몫
// (k = 100, coin[i] = 30)일 경우 동전 3개 쓰고 10원남음
// 다음 k값은 k / coin[i]의 나머지
if (k >= coin[i]) {
count += k / coin[i];
k = k % coin[i];
}
}
System.out.println(count);
}
}
'알고리즘 > 그리디' 카테고리의 다른 글
[알고리즘] 프로그래머스 - 조이스틱 - JAVA (2) | 2021.09.29 |
---|---|
[알고리즘] 프로그래머스 - 체육복 - JAVA (0) | 2021.09.29 |
[알고리즘] 백준 1541 잃어버린 괄호 - JAVA (0) | 2021.02.20 |
[알고리즘] 백준 11399 ATM - JAVA (0) | 2021.02.20 |
[알고리즘] 백준 1931 회의실 배정 - JAVA (0) | 2021.02.19 |
Comments