본문 바로가기

BackEnd/Java

[JAVA] 조건문, 반복문을 이용한 문제 풀이 10(만원의 행복)

728x90
반응형

 

목차

                                                                                                                           

1. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 1(윤년 계산기)

2. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 2(주사위 게임)

3. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 3(배수 판별기)

4. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 4(청구 금액 계산기)

5. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 5(다독왕)

6. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 6(피보나치 수)

7. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 7(출입증)

8. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 8(방정식)

9. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 9(숫자 맞추기 게임)

10. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 10(만원의 행복)

11. 2024.01.08 - [BackEnd/Java] - [JAVA] 조건문, 반복문을 이용한 문제 풀이 11(은행)

                                                                                                                           

 

 

자바의 조건문, 반복문을 이용한 문제 풀이를 진행해보겠습니다~

 

 

문제 10) 만원의 행복
만원에서 시작하여, 사용할 액수를 입력받고 돈을 사용할 때마다 해당 금액만큼 차감 후
"현재 가진 돈은 000원 입니다."를 출력한다.

해당 과정을 반복하여 돈을 남김없이 사용한 경우
"모든 돈을 사용하였습니다. . . 종료"를 출력하며 종료되는 프로그램을 작성하시오.

단, 금액은 반드시 정수만 입력받으며, 현재 가진 돈보다 크거나 0 혹은 음수를 입력 시 다시 입력을 요구하여야 한다. 또한, 잔액을 출력할 경우 반드시 세자리 수 마다 콤마(,)로 구분하여 출력한다. (예. 9,999원)

조건) 콘솔에 출력 시 printf만을 사용할 것

 

 

👉 출력방법

1. 현재 가진 돈은 10,000원 입니다.
2. 얼마를 사용하시겠습니까? → [숫자 입력]
3. (사용 범위를 벗어날 경우) 다시 입력해주세요, 사용 범위가 틀렸습니다.
4. 얼마를 사용하시겠습니까? → [숫자 입력]
5. (정상적인 값을 입력한 경우) 현재 가진 돈은 xx,000원 입니다.
6. 얼마를 사용하시겠습니까? → [숫자 입력]
7. (반복)
8. (모든 돈을 사용한 경우) 모든 돈을 사용하였습니다(종료)

 

 

👉  문제 풀이를 위한 Flow Chart

 


👉  문제 해답 코드

import java.util.Scanner;

public class Manwon {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int nowMoney = 10000;
		
		while(nowMoney > 0) {
			System.out.printf("현재 가진 돈은 %,d원 입니다.\n", nowMoney);
			
			System.out.print("얼마를 사용하시겠습니까? ");
			int input = sc.nextInt();
			
			nowMoney -= input;
			
			if(nowMoney <= 0) {
				System.out.println("모든 돈을 사용하였습니다.");
				break;
			}
		};
		
		sc.close();
	}
}

 

 

👉  코드 해설

1. 입력을 위한 java.util의 Scanner 클래스를 가져온다.
2. 인스턴스 생성 후 변수 nowMoney를 지정한 후 10,000을 저장한다.
3. 조건식을 통해 nowMoney가 0보다 큰지 확인한다.
 3-1) 참이라면, 현재 가진 돈을 출력하고 사용 금액을 뺀다.
 3-2) 거짓이라면, 반복문을 벗어난다.
4. nowMoney가 0보다 작거나 같은지 확인한다.
 4-1) 참이라면, 모든 돈을 사용하였다는 말과 함께 반복문을 벗어난다.
 4-2) 거짓이라면, 반복문을 계속 실행한다.

 

 

문제 풀이 시 while문을 이용해 짧게 코드를 구현할 수 있습니다.

제가 생각하기에는 조건문을 활용하여 풀 수 있는 방법 중 최적의 방법이라고 생각합니다.

 

혹시나 코드를 보고 좀 더 간단하게 풀이하실 수 있는 분들은 답글 부탁드려요!!!!

 

많은 분들의 피드백은 언제나 환영합니다!  많은 댓글 부탁드려요~~

 

728x90
반응형