본문 바로가기

BAEKJOON/수학

백준 31403번 [A + B - C](C++)-yes6686- 티스토리

728x90
SMALL

백준 문제 풀이: 31403 [A + B - C]


문제 링크: https://www.acmicpc.net/problem/31403

문제 설명:

정수 a, b, c가 주어질 때, 아래의 두 가지 결과를 출력하는 문제입니다.

  • a + b - c
  • 숫자 ab를 문자열로 이어붙인 후 정수로 변환하여, c를 뺀 결과

입력:

  • 한 줄에 세 개의 정수 a, b, c가 주어집니다. (1 ≤ a, b, c ≤ 106)

출력:

  • 첫 번째 줄에 a + b - c의 결과를 출력합니다.
  • 두 번째 줄에 문자열로 이어붙인 ab에서 c를 뺀 결과를 출력합니다.

문제 해결 코드


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

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

    int a, b, c;
    cin >> a >> b >> c;

    // 첫 번째 결과: a + b - c
    cout << a + b - c << '\n';

    // 두 번째 결과: 문자열로 a와 b를 연결 후 정수 변환, c를 뺌
    string s = to_string(a) + to_string(b);
    cout << stoi(s) - c << '\n';

    return 0;
}

예제

입력:
123 456 789

출력:
-210
123456
입력:
100 200 50

출력:
250
100150

코드 설명

  • 기본 연산:
    • 첫 번째 출력은 a + b - c의 값을 계산하여 출력합니다.
  • 문자열 연산:
    • to_string() 함수로 ab를 문자열로 변환하여 연결합니다.
    • stoi() 함수로 문자열을 다시 정수로 변환합니다.
    • 변환된 정수에서 c를 뺀 결과를 출력합니다.

시간 복잡도

  • 숫자 변환 및 계산은 O(1)의 시간 복잡도를 가지므로 전체 코드의 실행 시간은 매우 효율적입니다.

결과

코드는 입력된 정수에 대해 요구된 두 가지 결과를 정확히 계산하여 출력합니다. 문자열과 정수 변환을 효율적으로 활용하여 문제를 해결합니다.

다른 접근 방식이나 개선 사항이 있다면 댓글로 공유 부탁드립니다!

728x90
LIST