https://www.acmicpc.net/problem/11047
11047번: 동전 0
첫째 줄에 N과 K가 주어진다. (1 ≤ N ≤ 10, 1 ≤ K ≤ 100,000,000) 둘째 줄부터 N개의 줄에 동전의 가치 Ai가 오름차순으로 주어진다. (1 ≤ Ai ≤ 1,000,000, A1 = 1, i ≥ 2인 경우에 Ai는 Ai-1의 배수)
www.acmicpc.net
import java.util.*;
import java.io.*;
public class Main {
static BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
static BufferedWriter bw=new BufferedWriter(new OutputStreamWriter(System.out));
static StringBuilder sb=new StringBuilder();
static int[] money;
public static void main(String args[]) throws Exception {
String s[]=br.readLine().split(" ");
int n=Integer.parseInt(s[0]);
int k=Integer.parseInt(s[1]);
money=new int[n];
for(int i=0;i<n;i++) {
money[i]=Integer.parseInt(br.readLine());
}
int cnt=0;
for(int i=n-1;i>=0;i--) {
if(k>=money[i]) {
int temp=k/money[i];
cnt+=temp;
k%=money[i];
if(k==0) break;
}
}
System.out.println(cnt);
}
}
동전의 가치를 money 배열에 오름차순으로저장합니다.
최종값을 저장할 변수인 cnt 변수를 선언합니다.
이후 k 값을 입력받고, for문을 통해 동전의 가치가 높은 가치부터 k를 동전의 가치로 나누고 이를 cnt에 더합니다.
이후 k%=money[i] 문장을 통해 k 값을 현재 동전의 가치로 나눈 나머지를 k에 저장하고 k가 0이 될 때까지 반복합니다.
'프로그래밍 문제 > BOJ(백준 온라인 저지)' 카테고리의 다른 글
[BOJ 11050번] 이항 계수 1(JAVA) (0) | 2020.08.10 |
---|---|
[BOJ 1931번] 회의실 배정(JAVA) (0) | 2020.08.08 |
[BOJ 12865번] 평범한 배낭(JAVA) (0) | 2020.08.08 |
[BOJ 2565번] 전깃줄(JAVA) (0) | 2020.08.05 |
[BOJ 11053번] 가장 긴 증가하는 부분 수열(JAVA) (0) | 2020.08.05 |