Featured image of post [Algorithm] C++ 백준 31403번 : A + B - C

[Algorithm] C++ 백준 31403번 : A + B - C

백준 31403 A + B - C 문제를 Python과 C++로 풀이합니다. 숫자로 계산하는 A + B - C와 문자열을 이어붙인 뒤 int로 변환하여 C를 빼는 연산의 차이를 예제와 함께 설명하고, 빠른 입출력 코드, 복잡도, 테스트 팁까지 간결하게 정리했습니다.

백준 문제 A + B - C (31403) 는 숫자로 계산하는 A + B - C와 문자열로 이어붙인 뒤 수로 변환해 - C를 하는 두 가지 결과를 각각 출력하는 간단 구현 문제입니다.

문제 요약

  • 입력: 한 줄에 하나씩 양의 정수 A, B, C (0으로 시작하지 않음)
  • 출력:
    1. 숫자로 계산한 A + B - C
    2. 문자열로 AB를 이어붙여 정수로 변환한 뒤 - C

접근

  • 첫 줄은 정수 덧셈/뺄셈 그대로 계산합니다.
  • 둘째 줄은 str(A) + str(B)를 만든 뒤 정수로 변환해 C를 뺍니다.
  • 입력 구분(공백/개행)과 무관하게 안정적으로 파싱합니다.

Python 풀이

1
2
3
4
5
6
7
8
# 더 많은 정보: https://42jerrykim.github.io
import sys

t = sys.stdin.read().split()
a, b, c = int(t[0]), int(t[1]), int(t[2])

print(a + b - c)
print(int(t[0] + t[1]) - c)

C++ 풀이

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
// 더 많은 정보: https://42jerrykim.github.io
#include <bits/stdc++.h>
using namespace std;

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

    string sa, sb, sc;
    if (!(cin >> sa >> sb >> sc)) return 0;

    long long a = stoll(sa);
    long long b = stoll(sb);
    long long c = stoll(sc);

    cout << (a + b - c) << '\n';
    cout << (stoll(sa + sb) - c) << '\n';
    return 0;
}

복잡도

  • 시간: O(1) (자리수 결합 및 변환은 최대 자릿수에 비례하나 입력 범위가 작음)
  • 공간: O(1)

예시

입력

1
2
3
3
4
5

출력

1
2
2
29