본문 바로가기
JAVA

JAVA 실습 2. for문에 배열문을 합해 동전의 갯수를 구하는 프로그램

by 김마리님 2020. 3. 23.

for문의 단점은 증감문이 규칙적으로 변한다는 점이다.

그러나 동전은 10,50,100,500의 크기를 가지고 있으니 평범한 증감문으로는 이를 표현할 수가 없다.

따라서, 이를 해결하기 위해 배열을 사용한다. 

잘 생각해보자.

            count=money/500;
			money=money%500;
			System.out.println("500원 갯수 : "+count);
			System.out.println("남은 금액 : "+money);
            count=money/500;
			money=money%100;
			System.out.println("100원 갯수 : "+count);
			System.out.println("남은 금액 : "+money);
            count=money/50;
			money=money%50;
			System.out.println("50원 갯수 : "+count);
			System.out.println("남은 금액 : "+money);
            count=money/10;
			money=money%10;
			System.out.println("10원 갯수 : "+count);
			System.out.println("남은 금액 : "+money);

이렇게 구하게 되면 너무, 노가다적 배열이 된다.

여기서 변수로 두게 될 것은 500, 100, 50, 10이고, 나머지는 상수로 둔다.

변수를 배열로 묶어보자.

		int coin[]= {500,100,50,10};

배열로 묶게 되면 배열값의 위치만 알게 되면 그 배열값을 가져올 수 있다.

따라서, 

public class Coin {

	public static void main(String[] args) {
		int money=1250;
		int count=0;
		int coin[]= {500,100,50,10,1};
		System.out.println("시작 금액 : "+money);
		
		for (int i = 0; i < coin.length; i++) {
			count=money/coin[i];
			money=money%coin[i];
			System.out.println(coin[i]+"원 갯수 : "+count);
			System.out.println("남은 금액 : "+money);
		}	
	}
}

다음과 같이 i를 변수로 두고, 변수에 따른 배열값을 불러오면 for문을 이용해서도 규칙성 없는 변수도 사용할 수 있다.

 

 

반응형