공부하기/백준

[Java] 백준 풀기 2975 - Transactions

XEV 2023. 4. 14. 23:44

자바 백준 2975번

브론즈 3

https://www.acmicpc.net/problem/2975

 

2975번: Transactions

Input consists of a number of lines, each representing a transaction. Each transaction consists of an integer representing the starting balance (between –200 and +10,000), the letter W or the letter D (Withdrawal or Deposit), followed by a second integer

www.acmicpc.net

 

 

 

 

 

문제 보기

분류: 수학, 구현, 사칙연산

 

 

 

 

 

문제 풀기

while loop 를 true 조건으로 지속적으로 돌려놓고, 입력 받은 세 개의 값이 0 && W && 0 가 찍히면 loop 를 빠져나오는 코드를 바로 적어둔다.

그 다음, "D" 가 입력 되었을때에는 조건 분기가 없기 때문에 바로 두 수의 합을 출력해 준다.

그 외 경우인 "W" 가 입력 되었을때에는 은행에 남아있는 돈과 과도하게 찾으려는 돈에 의해 -200 미만이 되면 "Not allowed" 를 출력하고, 그렇지 않으면 출금 후 남은 돈의 계산 결과를 출력한다.

 

 

 

 

 

코드 보기

import java.util.Scanner;

public class Main {
    public static void main(String args[]) {
        
        Scanner sc = new Scanner(System.in);
        
        int a = 0;
        String trans = "";
        int b = 0;
        
        while (true) {
            a = sc.nextInt();
            trans = sc.next();
            b = sc.nextInt();
            
            if (a == 0 && trans.equals("W") && b == 0) break;
            
            if (trans.equals("D")) {
                System.out.println(a + b);
            }
            else {
                if (a - b < -200) {
                    System.out.println("Not allowed");
                }
                else {
                    System.out.println(a - b);
                }
            }
        }

    }
}