PROBLEM SOLVING

[백준] A + B - C

sooindev 2025. 5. 2. 22:15
728x90

문제


JavaScript에서
+,−은 수에 대해서는 일반적인 의미의 덧셈 뺄셈의 의미를 가지고 있습니다. 하지만 문자열에 대해서
+는 두 문자열을 이어붙이라는 의미이고,
−는 양쪽 문자열을 수로 해석한 이후에 빼라는 의미입니다.

 

A,B,C를 각각 수와 문자열로 생각했을 때
A+B−C를 출력하세요.

 

 

 

입력


첫 줄에는 정수
A가 주어집니다.
(1 ≤ A ≤ 1000) 

 

둘째 줄에는 정수
B가 주어집니다.
(1 ≤ B ≤ 1000) 

 

셋째 줄에는 정수
C가 주어집니다.
(1 ≤ C ≤ 1000) 

 

주어지는 모든 수는 0으로 시작하지 않는 양의 정수입니다.

 

 

 

출력


첫 줄에는 A,B,C를 수로 생각했을 때, A+B−C를 출력하세요.

둘째 줄에는 A,B,C를 문자열로 생각했을 때, A+B−C를 출력하세요.

 

 

 

문제 풀이


import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        // A, B, C 입력 받기
        int A = Integer.parseInt(br.readLine());
        int B = Integer.parseInt(br.readLine());
        int C = Integer.parseInt(br.readLine());

        // 수로 생각했을 때
        System.out.println(A + B - C);

        String aText = Integer.toString(A);
        String bText = Integer.toString(B);
        String aPlusB = aText + bText;
        int aPlusBInt = Integer.parseInt(aPlusB);

        // 문자열로 생각했을 때
        System.out.println(aPlusBInt - C);

        br.close();
    }
}

우선 전체 코드는 다음과 같다.
먼저 BufferedReader를 사용하여 A, B, C를 각각 입력 받고,
수로 생각했을 때를 출력한다.
여기까지는 문제가 없을 것이다.

 

하지만 이 문제의 핵심은 문자열로 생각했을 때이다.
나는 AB를 각각 String으로 변환하여 aText, bText로 만들었다.
그 다음 aTextbText를 합친 값을 변수 aPlusB에 대입했다.
하지만 int형인 C와의 연산을 해야하므로 int형으로 다시 변환이 필요했다.
그래서 변수 aPlusBInt를 선언하고 Integer.parseInt() 메서드를 활용하여 int형으로 변환했다.

 

마지막으로 문자열로 생각했을 때의 결과값을 출력해주면 된다.

이 문제는 그렇게 크게 어렵지 않았다.