문제
문제해결1
import java.util.Scanner;
public class S1_11047 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
int money = sc.nextInt();
int[] coins = new int[size];
for (int i = 0; i < size; i++) {
coins[i] = sc.nextInt();
}
int cnt = 0;
for (int i = size-1; i >= 0; i--) {
if(coins[i]<=money){
while (money-coins[i]>=0){
money -= coins[i];
cnt++;
}
}
}
System.out.println(cnt);
}
}
- 코인이 큰 순서대로 확인을 하며 돈보다 코인의 단위가 작을시 while문을 통해 해당 단위씩 빼기 연산을 진행하여 문제를 해결하였다
문제해결2
import java.util.Scanner;
public class S1_11047 {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int size = sc.nextInt();
int money = sc.nextInt();
int[] coins = new int[size];
for (int i = 0; i < size; i++) {
coins[i] = sc.nextInt();
}
int cnt = 0;
for (int i = size-1; i >= 0; i--) {
if(coins[i]<=money){
cnt += (money/coins[i]);
money %= coins[i];
}
}
System.out.println(cnt);
}
}
- 먼저 푼 방법이 비효율적인것 같아 구글링을 해보니 나누기 연산으로 cnt를 세는 방법과 나머지 연산으로 남은 돈 구하는 방식을 통해 연산을 한번으로 줄일 수 있었다
'[알고리즘] > 백준' 카테고리의 다른 글
자바 - 구현 - 백준 2501 약수 구하기 (0) | 2021.05.01 |
---|---|
[실패] 11047 (0) | 2021.04.25 |
자바 - 구현 - 백준 2947 나무 조각 (0) | 2021.04.23 |
자바 - 구현 - 백준 20113 긴급회의 (0) | 2021.04.22 |
자바 - 구현 - 백준 20291 파일 정리 (0) | 2021.03.13 |