그리디 - 채울 값어치를 최대한으로 채울 수 있는 가치 코인을 최대 개수로 채워나간다.
// Process
// 1. 코인 개수 입력받는다. 만드려는 값어치를 입력받는다. 코인 개수 만큼의 코인들의 값어치들을 입력받는다.
(각 값어치는 전부 배수 관계, 오름차순)
// 2. 코인값어치 배열이 오름차순이므로, 뒤에서부터 만드려는 값어치가 채워질 때까지 반복한다.
// 2.1. 현재 차례의 코인 가치보다 채워야할 값어치가 더 남아있는지 확인해서
// 2.1.1. 더 남아있으면 -> 채울수 있는만큼의 개수 세고, 채워야할 가치를 그만큼 줄인다.
// 3. 센 개수를 반환한다.
import java.util.Scanner;
class CoinZero {
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
int coinNumber = sc.nextInt();
int goalValue = sc.nextInt();
int[] coins = new int[coinNumber];
for(int i = 0; i < coinNumber; ++i)
coins[i] = sc.nextInt();
int count = 0;
int validCount;
for (int i = coins.length-1; i >= 0; --i) {
validCount = goalValue / coins[i];
count += validCount;
goalValue = goalValue - (coins[i] * validCount);
}
System.out.println(count);
}
}
탐욕법 05 - 섬 연결하기, 프로그래머스, 알고리즘, Programmers, Stack, Queue, Hash, 코딩테스트, Algorithm,
최소신장트리 (Minimum Spanning Tree, MST) 문제였는데, 처음보는거라서 Kruskal, Prim 방식 2가지가 있다고 해서 2가지로 풀어두었다. import java.util.*; // Kruskal mst // Process // 1. Input n, costs //..
itdar.tistory.com
CodeSignal Intro Databases #6 VolleyballResults. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시
CodeSignal Intro Databases #6 VolleyballResults. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview..
itdar.tistory.com
LeetCode #728 SelfDividingNumbers. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,
LeetCode #728 SelfDividingNumbers. Algorithm,알고리즘,LeetCode,Codefights,CodeSignal,코드파이트,코드시그널,예제,그래프,Graph,example,c++,java,재귀,recursive,datastructure,techinterview,coding,코딩인..
itdar.tistory.com