[백준] 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++' 카테고리의 다른 글
[Baekjoon/C++] 30802번 - 웰컴 키트 (1) | 2024.06.05 |
---|---|
[Baekjoon/C++] 28702번 - FizzBuzz (0) | 2024.06.04 |
[Baekjoon/C++] 11657번 - 타임머신 (0) | 2024.05.31 |
[Baekjoon/C++] 4485번 - 녹색 옷 입은 애가 젤다지? (0) | 2024.05.30 |
[Baekjoon/C++] 12015번 - 가장 긴 증가하는 부분 수열 2 (0) | 2024.05.29 |