Notice
Recent Posts
Recent Comments
Link
개발 공부~
[백준 - 11047] 동전 0 .java 본문
https://www.acmicpc.net/problem/11047
문제 분석
전형적인 그리디 알고리즘을 이용하는 문제이다
동전을 최소로 사용하여 k 금액을 만들기 위해서는 가장 가격이 큰 동전부터 차례대로 사용하면 된다
- K >= 동전금액 -> k / 동전금액 -> 몫은 동전 개수에 추가 , 나머지(k%동전금액) -> k 값으로 갱신
import java.util.*;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
// 입력 받아 저장
int n = sc.nextInt();
int k = sc.nextInt();
//초기화 및 한줄씩 저장
int[] coins = new int[n];
for (int i = 0; i < n; i++) {
coins[i] = sc.nextInt();
}
int count = 0;
//개수 최솟값 -> 역순
for(int i = n-1; i>=0; i--) {
//k가 현재 동전 값보다 크거나 같으면
if(k >= coins[i]){
//동전 개수는 몫
count += (k / coins[i]);
//나머지는 갱신해서 다시 계산
k %= coins[i];
}
}
System.out.println(count);
}
}
'코딩테스트 > 백준' 카테고리의 다른 글
[백준 - 1300] K번째 수 .java (0) | 2024.07.31 |
---|---|
[백준 - 2343] 기타 레슨 .java (0) | 2024.07.31 |
[백준 - 1920] 수 찾기 .java (0) | 2024.07.31 |
[백준 - 1167] 트리의 지름 .java (0) | 2024.07.31 |
[백준 - 2178] 미로 탐색 .java (5) | 2024.07.23 |