Language/Java

[Java] Array 실습 (동전)

arajo 2022. 7. 28. 21:12
728x90

Array

가지고 있는 금액을 큰 금액의 동전으로 먼저 거슬러 주면 각 동전은 몇 개씩 필요한가...

public static void main(String[] args) {
	int[] coinUnit = {500, 100, 50, 10}; // 동전의 종류
		
	int myMoney = 2890; // 가지고 있는 금액
		
	// 가지고 있는 금액을 큰 금액의 동전으로 먼저 거슬려 주면,
	// 각 동전은 몇 개씩 필요한가요?
		
	// 작업의 횟수는 동전의 종류만큼 할 수 있다.
	for(int i = 0; i < coinUnit.length; i++) {
		System.out.println(coinUnit[i] + "원 동전 : " + myMoney/coinUnit[i] + "개 = " + myMoney/coinUnit[i] * coinUnit[i]);
			
		myMoney = myMoney%coinUnit[i];
		// 금액을 동전으로 나눈 몫이 그 동전으로 거슬러 줄 수 있는 개수이다.
		// 나머지를 가지고 다음 동전으로 작업할 수 있게 한다.
			
	}
}

실행 결과

남은 동전의 개수, 거스르고 남은 돈은...? (3300원까지 입력 int[] coin = {5, 5, 5, 5];)

public static void main(String[] args) {
	java.util.Scanner sc =  new java.util.Scanner(System.in);
		
	// 3300원
	int[] coinUnit = {500, 100, 50, 10}; // 동전의 종류
	int[] coin 	   = {5, 5, 5, 5}; 		 // 동전 단위별 개수
		
	System.out.print("동전으로 교환할 금액은 얼마인가요?");
	int myMoney = sc.nextInt();
		
	// 남은 동전의 개수, 거스르고 남은 돈은?
	for(int i = 0 ; i < coinUnit.length; i ++) {
		int coinNum = 0; // 동전의 개수를 저장할 변수
			
		// 금액을 동전단위로 나누어서 필요한 동전의 개수를 구한다.
		coinNum = myMoney / coinUnit[i];
			
		// 동전의 개수가 모자란다면 있는 개수 모두 거슬러 준다.
		if(coin[i] >= coinNum) {
			coin[i] -= coinNum;
		} else {
			coinNum = coin[i];
			coin[i] = 0;
		}
			
		// 금액에서 동전의 개수x동전 단위 만큼 차감한다.
		myMoney -= coinNum * coinUnit[i];
		System.out.println(coinUnit[i] + "원 : " + coinNum + "개");
	}
	System.out.println("남은 금액 : " + myMoney + "원");
	System.out.println("남은 동전의 개수");
	for(int i = 0; i < coinUnit.length; i++) {
		System.out.println(coinUnit[i] + "원 : " + coin[i] + "개");
	}
	sc.close();
}

실행 결과

입력 전 출력

여기에 금액을 금액(숫자)를 입력해주면 아래 결과 출력

3300 입력시
2700 입력시