Java/Daily-Java

[Array] 동전 거슬러주기 _ Part 1

모모토 2021. 4. 15. 11:49
반응형

● 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();
		}
		
	}
}