상세 컨텐츠

본문 제목

[JAVA] 자바 예제 - 자판기 거스름돈 산출하기

공-부/Homework

by 사랑짱 2021. 6. 7. 15:44

본문

<문제>

조건 1. 물건 값 => 정수만 허용 (예: int price = 1580; )
조건 2. 지급한 현금 => 정수만 허용 (예: int pay = 3900; )
조건 3. 사용가능한 동전 => 500원/100원/50원/10원

위 조건 하에, 물건의 가격과 지불한 현금은 임의대로 주어졌을때

거스름돈을, 동전의 종류별로 몇개씩 주어야 하는지 산출하세요.

 

문제 해결 포인트

 

/(divide operator), %(modular operator) 연산자를 이용하여 동전의 개수를 구한다.

이때, 금액이 큰 금액부터 순차적으로 계산한다.

 

 

문제 해결 과정

 

Step 1. 변수를 선언한다(물건의 가격, 지불액, 거스름돈).

 

Step 2. 물건의 가격과 지불액을 입력받는다.

 

Step 3. 거스름돈을 "지불액 - 물건의 가격"으로 초기화한다.

   3-1. 입력 조건 추가 : 입력받을 지불액과 물건의 가격은 0보다 커야 한다.

   3-2. 입력 조건 추가 : 지불액은 물건의 가격보다 커야 한다.

 

Step 4. 동전의 개수를 대입할 coinList 배열을 생성한다.

   4-1. 배열 요소의 값을 알고 있으므로 값 목록(500, 100, 50, 10)으로 생성한다.

   4-2. 이때, 동전의 금액이 큰 순서대로 값 목록을 입력한다.

 

Step 5. 동전의 개수를 입력받을 coin변수를 정의한다.

 

Step 6. 향상된 for문을 이용하여  동전의 개수를 구한다.

   6-1. 거스름 돈에서 coinList의 요소값을 순차적으로 /(나누기)하여 동전의 개수를 구한다.

   6-2. 6-1에서 구한 동전을 뺀 금액을 %(나머지) 연산자를 통해 거스름돈에 대입한다.

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.util.Scanner;
 
 
public class Charge {
    
    
    public static void main(String[] args) {        
        Scanner stdIn = new Scanner(System.in);
        
        int price;    //물건의 가격
        int pay;    //지불액
        int charge; //거스름돈
        
        do {
            System.out.print("물건의 가격 : ");
            price = stdIn.nextInt();
            
            System.out.print("지불액 : ");
            pay = stdIn.nextInt();
            
            charge = pay - price;
            
        } while(price <= 0 || pay <= 0 || charge < 0);    //do-while
        stdIn.close();
        
        int[] coinList = {5001005010};
        int coin = 0;
        
        System.out.println("--------------동전의 개수-----------------");
        System.out.println("거스름돈 : " + charge + "원");
        
        for(int arr : coinList) {
            coin = charge / arr;
            charge = charge % arr;
            System.out.println(arr + "원 동전의 개수 :  " + coin + "개");
        }    //enhanced for <-> classic for
        
    }    //main        
    
}    //class
cs

 

 

관련글 더보기