첫 번째 시도)
틀린 코드ㅠㅜ
import java.util.Scanner;
public class P_04 {
public static void main(String[] args) {
/* 거스름돈을 입력 받아 내어줘야 하는 지폐의 개수를 출력.
* 단, 최대단위는 10,000원, 최소단위는 100원
*/
Scanner sc = new Scanner(System.in);
System.out.print("총 금액 입력 : ");
int bill = sc.nextInt();
System.out.println();
System.out.println("잔돈 : "+bill);
int result1 = (bill/10000);
System.out.println("10,000원 : "+result1+"개");
int result2 = ((bill-bill/10000*10000)/5000);
System.out.println("5,000원 : "+result2+"개");
int result3 = (bill-(bill/10000*10000)-5000)/1000;
System.out.println("1,000원 : "+result3+"개");
int result4 = (bill-(bill/10000*10000)-5000-(bill-(bill/10000*10000)-5000)/1000*1000)/500;
System.out.println("500원 : "+result4+"개");
int result5 = ((bill-(bill/10000*10000)-5000-(bill-(bill/10000*10000)-5000)/1000*1000)-(bill-(bill/10000*10000)-5000-(bill-(bill/10000*10000)-5000)/1000*1000)/500*500)/100;
System.out.println("100원 : "+result5+"개");
}
}
=> 하지만 이 방법은 가독성이 떨어지고 동일구문이 반복됨.
두 번째 코드)
이것도 틀린 코드...ㅜㅠ
import java.util.Scanner;
public class P_04_다른풀이 {
public static void main(String[] args) {
/* 거스름돈을 입력 받아 내어줘야 하는 지폐의 개수를 출력.
* 단, 최대단위는 10,000원, 최소단위는 100원
*/
Scanner sc = new Scanner(System.in);
System.out.print("총 금액 입력 : ");
int bill = sc.nextInt();
System.out.println();
System.out.println("잔돈 : "+bill);
int result1 = (bill/10000);
System.out.println("10,000원 : "+result1+"개");
int a = (bill-bill/10000*10000);
int result2 = (a/5000);
System.out.println("5,000원 : "+result2+"개");
int result3 = (a-5000)/1000;
System.out.println("1,000원 : "+result3+"개");
int b = a-5000;
int result4 = (b-b/1000*1000)/500;
System.out.println("500원 : "+result4+"개");
int c = b/1000*1000;
int result5 = (b-c-((b-c)/500*500))/100;
System.out.println("100원 : "+result5+"개");
}
}
=> 동일구문을 변수로 담아서 코드작성.
세 번째 시도)
올바른 코드!
import java.util.Scanner;
public class P_04 {
public static void main(String[] args) {
/* 거스름돈을 입력 받아 내어줘야 하는 지폐의 개수를 출력.
* 단, 최대단위는 10,000원, 최소단위는 100원
*/
Scanner sc = new Scanner(System.in);
System.out.print("총 금액 입력 : ");
int bill = sc.nextInt();
int a = bill/10000;
System.out.println("10,000원 : "+a+"개");
int b = bill%10000/5000;
System.out.println("5,000원 : "+b+"개");
int c = bill%5000/1000;
System.out.println("1,000원 : "+c+"개");
int d = bill%1000/500;
System.out.println("500원 : "+d+"개");
int e = bill%500/100;
System.out.println("100원 : "+e+"개");
}
}
=> 첫 번째 두 번째 코드가 너무 더티하고 틀린 코드였어요ㅋㅋ
그래서 좀 더 단순화시켜 생각해보았어요.
화폐 단위의 나머지에서 구하고자 하는 단위를 나누어 매수를 구했어요.
'Algorithm > Java Festival' 카테고리의 다른 글
[Java Festival] 1-2+3-4..+99-100 을 계산하여 답을 출력하기 (0) | 2023.03.01 |
---|---|
[Java Festival] A, B 숫자를 입력받고 조건에 부합하면 프로그램 종료 (0) | 2023.03.01 |
[Java Festival] 몸무게 감량 (0) | 2023.02.27 |
[Java Festival] 시급계산기 (0) | 2023.02.26 |
[Java Festival] 정수의 1의 자리를 반올림 (0) | 2023.02.26 |
댓글