● Java를 이용한 동전 거슬러주는 코드를 작성해보자
문제 조건 :
A. 내가 가진 동전의 종류 : 500원 100원 50원 10원
B. 동전의 개수는 무제한
C. 500원부터 10원 순서로 큰 금액의 동전을 우선적으로 거슬러 줘야 한다
D. 받은돈(money) : 2680
Result↓
money=2680
500 : 5
100 : 1
50 : 1
10 : 3
1) 배열 설정
int [] coinUnit = {500,100,50,10};
int [] coinNum = new int [4]; // coinUnit 당 거슬러 줄 동전의 개수를 넣어줄 배열 출력 시 필요
2) 거슬러 줄 동전의 갯수 구하기
int money = 2680; // 거슬러 줘야 할 돈의 액수는 중요치 않으므로 조건에 안 넣음
2680원 / 500원 = 5.xx -> 2500원을 거슬러 주고 180원이 남음 나머지 180원을 100원 그 나머지를 50원... 반복
코드로 표현하면 다음과 같다
money / coinUnit [0] = coinNum [0]; // 500원으로 거슬러줄 때
money-=coinUint [0]*coinNum [0]; // 2500원을 거슬러 주고 남은 돈을 money에 저장
money / coinUnit [1] = coinNum [1]; // 100원으로 거슬러 줄 때
money-=coinUint [1]*coinNum [1];
for 문으로 구현하기
↓↓↓
for(int i=0; i<coinUnit.length; i++){
coinNum [i] = money / coinUnit [i];
money-=coinUnit [i]*coinNum [i];
//money%=coinUnit [i]
}
Answer
public class Coin {
public static void main(String[] args) {
int [] coinUnit = {500,100,50,10};
int[] coinNum = new int [4];
int money = 2680;
System.out.println("받은돈 "money);
for(int i=0; i<coinUnit.length; i++) {
coinNum[i] = money / coinUnit[i];
money-=coinUnit[i]*coinNum[i];
// money%=coinUnit[i];
System.out.printf("필요한 %d원 갯수 : %d ",coinUnit[i],coinNum[i]);
System.out.println();
}
}
}
'Java > Daily-Java' 카테고리의 다른 글
[Array] 2차원 배열의 90도 회전 (0) | 2021.04.20 |
---|---|
[Array] 동전 거슬러주기 _ Part 2 (응용) (0) | 2021.04.15 |
[Array] 배열을 응용한 " * " 출력 예제 (0) | 2021.04.13 |
[Array] 2차원 배열 응용 (0) | 2021.04.13 |
[Array] 행렬의 곱셈 (0) | 2021.04.11 |