본문 바로가기

Algorithm/Implementation

(C++) - 백준(BOJ) 2975 : Transactions

반응형

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, if문을 사용해보는 문제였습니다.

📕 풀이방법

📔 입력 및 초기화

while loop를 수행하며 다음을 수행합니다.

 현재 가지고 있는 예산 budget, 인출 또는 입금 amount, 정답을 출력할 변수 result, 인출이나 입금을 의미하는 연산자 op를 선언 후 적절히 입력해줍니다.

📔 풀이과정

loop를 나오는 조건으로 입력되었다면 break해줍니다.

1. 연산자 op가 'W'라면 인출이므로 result = budget - amount입니다

2. 연산자 op가 'D'라면 입금이므로 result = budget + amount입니다

📔 정답출력

만약 result가 -200이하라면 허용범위 초과이므로 Not allowed를 출력합니다.

아니라면 result를 출력해줍니다.


📕 Code

#include <bits/stdc++.h>
using namespace std;

int main(){
    while(1){
        int budget, amount, result;
        char op;
        cin >> budget >> op >> amount;
        if(!budget && op == 'W' && !amount) break;
        if(op == 'W') result = budget - amount;
        else result = budget + amount;
        if(result < -200) cout << "Not allowed\n";
        else cout << result << '\n';
    }
}