별의 공부 블로그 🧑🏻‍💻
728x90
728x170

문제

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

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

 

 

입력

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

 

 

출력

A와 B를 붙인 수와 C와 D를 붙인 수의 합을 출력한다.

 

 

예제 입력

 10 20 30 40

 

예제 출력

 4060

 

 

힌트

 

 

출처

· 문제를 만든 사람: baekjoon

· 문제의 오타를 찾은 사람: wurikiji

 

  

코드

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#include <iostream>
#include <cstring>    // strlen()
#include <string>    // stoll() (C++11)
 
#define N 14    // A(C), B(D) 가 모두 1,000,000일 경우 -> 7자리 * 2 = 14자리
 
using namespace std;
 
int main()
{
    char A[N] = " ", B[N] = " ", C[N] = " ", D[N] = " ";
    char ary1[N * 4], ary2[N * 4];
    int lena, lenc;
    long long res1, res2;        
 
    cin >> A >> B >> C >> D;
 
    lena = strlen(A);
    lenc = strlen(C);
 
    for (int i = 0; i < N; i++) {
        if (A[i] != ' ') {
            ary1[i] = A[i];
        }
        if (C[i] != ' ') {
            ary2[i] = C[i];
        }
    }
 
    for (int i = 0; i < N; i++) {
        if (B[i] != ' ') {
            ary1[i + lena] = B[i];
        }
        if (D[i] != ' ') {
            ary2[i + lenc] = D[i];
        }
    }
 
    res1 = stoll(ary1);    
    res2 = stoll(ary2);
 
    cout << res1 + res2 << endl;
 
    return 0;
}
cs




- stoll() 함수를 사용하여 쉽게 풀었던 문제. (stoll() 함수는 C++11에서 제공되는 함수)

- 처음에는 stoi() 함수를 무심코 사용하였지만, 출력 오류가 발생하였다. 

- A,B,C,D의 값이 모두 1,000,000으로 입력 받았을 경우, int형의 범위를 초과하기 때문에 long long 자료형을 사용해서 변수를 선언해야 했고, String을 long long 형식의 자료형으로 바꿔주는 stoll() 함수를 써야 헀다.

- 아래는 최대값을 입력값으로 넣어줬을 때의 출력 결과이다.

입력 : 1000000 1000000 1000000 1000000  

출력 : 20000002000000 (int 자료형 범위 초과)

728x90
그리드형(광고전용)

'Problem Solving > BaekJoon Online Judge' 카테고리의 다른 글

[BOJ10101][C++] 삼각형 외우기  (0) 2017.11.10
[BOJ4153][C++] 직각삼각형  (0) 2017.11.10
[BOJ5565][C++] 영수증  (0) 2017.11.09
[BOJ12790][C++] Mini Fantasy War  (0) 2017.11.09
[BOJ2446][C++] 별찍기 - 9  (0) 2017.11.09
[BOJ2445][C++] 별찍기 - 8  (0) 2017.11.09
[BOJ2444][C++] 별찍기 - 7  (0) 2017.11.09
[BOJ2443][C++] 별찍기 - 6  (0) 2017.11.09
⚠️AdBlock이 감지되었습니다. 원할한 페이지 표시를 위해 AdBlock을 꺼주세요.⚠️
starrykss
starrykss
별의 공부 블로그 🧑🏻‍💻


📖 Contents 📖