20151018


*이문제는 % 연산자와 / 연산자를 알고 있어야 합니다.
*이문제는 dovelet 에 있는 알고리즘 문제입니다.




거스름 돈/change



프로그램 명: change
제한시간: 1 초
상점에서 물건을 사고 지폐로 돈을 내면 거스름 돈을 줘야 한다. 이 때 동전을 어떻게 해서 줘야 하는지 계산하시오.

돈은 반드시 1000 원을 내며 , 거스름 돈은 10 원 , 50 원 , 100 원 동전으로 하고 큰 동전 우선으로 준다.

입력

물건 값으로 세자리 자연수가 입력으로 주어진다. 일의 자리는 0 이다.

출력

동전 100 원 , 50 원 , 10 원의 개수를 출력한다.

입출력 예

입력

530

출력

4 1 2





문제 풀이



import java.io.PrintStream;
import java.util.Scanner;

public class Main {
 
	Scanner sc = new Scanner(System.in);        
	PrintStream p = System.out;
	int a;
	
	
	public static void main(String[] args) {
		Main ma = new Main();
	    ma.input();  
	    ma.result();
	}
	
	void input(){
		a = sc.nextInt();
	}
	void result(){
		int result = 1000 - a;
		int hund = result/100;
		int fif = (result%100)/50;
		int ten = (result%50)/10;
		p.print(hund + " " + fif + " " + ten);
	}
}


우선 3자리수 자연수 1개를 입력 받아야 하기 때문에 변수 a 를 선언과 값을 직접 입력 받아야 하기 때문에 Scanner 객체를 만들고 정수형 값을 입력 NextInt(); 를 사용해서 변수에  물건 값을 입력 받습니다.(정수 값으로 하기 위해서 int 를 사용 했습니다.)

그런 다음 1000원에서 3자리수 물건 값을 빼면 3자리수 잔돈이 남겠죠 제일 큰 수인 100원의 개수를 구하기 위해서는 100으로 나눈 몫이 100원의 개수가 됩니다.

50원의 개수는 100으로 % 연산자를 하면 100원을 제외한 나머지 잔돈의 금액이 나옵니다. 그런 그값에 /50 연산을 해줘서 50원 개수의 몫을 구합니다.

10원의 개수는 잔돈에서 100으로 % 연산자를 하고 50으로 %연산자를 한 나머지 값이나 50으로 %연산자를 한 나머지 값과 같습니다. 그래서 잔돈에 % 50 연산을 하고 /10 연산을 해서 10원의 몫을 구하면 10원의 개수가 됩니다.  










+ Recent posts