본문 바로가기
PS

백준 10824번 C++ 네 수

by mtoc 2019. 6. 7.


네 수

https://www.acmicpc.net/problem/10824

네 자연수 A, B, C, D가 주어진다. 이때, A와 B를 붙인 수와 C와 D를 붙인 수의 합을 구하는 프로그램을 작성하시오.

두 수 A와 B를 합치는 것은 A의 뒤에 B를 붙이는 것을 의미한다. 즉, 20과 30을 붙이면 2030이 된다.





이게 정답률이 37퍼?

이유가 다 있는 거다.

입력 조건을 무시하고 풀면 이렇게 된다.


첫째 줄에 네 자연수 A, B, C, D가 주어진다. (1 ≤ A, B, C, D ≤ 1,000,000)


이 조건을 무시하고 그냥 풀었을 때, 만약 백만을 이어 붙이게 되면

10000001000000이 되는데, 이는 stoi로 변환했을 때 범위를 초과하므로(int로 변환) 런타임 에러가 날 수밖에 없다.

저 조건만 주의해서 풀어주자.

나는 unsigned long long을 택했는데 그냥 long long써도 된다.





코드

1
2
3
4
5
6
7
8
9
10
11
12
13
14
#include <iostream>
#include <math.h>
using namespace std;
int main() {
    string arr[4];
    for(int i=0; i<4; i++) {
        cin>>arr[i];
    }
    unsigned long long a, b;
    a=stoi(arr[0])*pow(10, arr[1].size())+stoi(arr[1]);
    b=stoi(arr[2])*pow(10, arr[3].size())+stoi(arr[3]);
    cout<<a+b;
    return 0;
}
cs


'PS' 카테고리의 다른 글

백준 1707번 C++ 이분 그래프  (0) 2019.06.12
백준 11004번 C++ K번째 수  (0) 2019.06.10
백준 2225번 C++ 합분해  (0) 2019.06.02
백준 9461번 C++ 파도반 수열  (0) 2019.06.01
백준 1912번 C++ 연속합  (0) 2019.05.30

댓글