본문 바로가기

백준/C++

[Baekjoon/C++] 31403번 - A + B - C

[백준] Baekjoon Online Judge

문제로 이동

 

문제

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

 𝐴, 𝐵, 𝐶를 각각 수와 문자열로 생각했을 때 𝐴 + 𝐵 − 𝐶를 출력하세요.

 

입력

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

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

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

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

 

출력

첫 줄에는 𝐴, 𝐵, 𝐶를 수로 생각했을 때, 𝐴 + 𝐵 − 𝐶를 출력하세요.

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

 


풀이

#include <iostream>
#include <string>
using namespace std;

int main() {
    ios::sync_with_stdio(false);
    cin.tie(0);
    cout.tie(0);

    string A, B, C;

    cin >> A >> B >> C;

    cout << stoi(A) + stoi(B) - stoi(C) << '\n';
    cout << stoi(A + B) - stoi(C) << '\n';

    return 0;
}

string 변수의 값을 숫자로 변환해주는 기능을 가지고 있는 <string> 라이브러리의 stoi 함수를 사용하였다.

첫 줄에는 A, B, C를 모두 숫자로 생각했을 때의 결과를 출력해야 하기에 모든 변수에 stoi()를 하였다.

둘째 줄에는 A와 B을 이어붙인 문자열에서 C를 빼야 하는 것이기에 A+B와 C에 stoi()를 하여 계산하였다.

 

지금 글을 작성하며 코드를 보니 C는 처음부터 int로 입력받는 것이 더 효율적이었을 것 같다는 생각이 든다.

 

<string을 int로 변환하기> 참고 자료

 

C++에서 String을 Integer로 변환하는 방법 예시

> C++로 코드를 작성할 때, 어떤 데이터 타입을 다른 타입으로 바꿔야 할 때가 있을 것입니다. 이 글에서는 가장 잘 알려진 두 가지 방법을 통해 C++에서 string을 integer로 바꾸는 방법을 배울 수 있

www.freecodecamp.org