개발/알고리즘

10824_네수

송디 2020. 11. 15. 15:45

www.acmicpc.net/problem/10824

 

10824번: 네 수

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

www.acmicpc.net

간단하게 stoi 함수를 사용하여 끝내려고 했으나, stoi 함수는 int 형 범위까지만 가능하였다. 이 문제는 자연수 최대값이 1,000,000 이므로 두개를 함치면, 1,000,000,000,000으로 int형 범위를 넘어선다. 그래서 stoi 함수를 직접 구현해주었다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
long long fn_stoi(string ss){
    int len;
    long long num;
 
    len = 0;
    num = 0;
    for(char c : ss)
        len++;
    for(char c : ss){
        num += (c - '0'* pow(10--len);
    }
    return num;
}
cs

전체코드

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
#include<iostream>
#include<string>
#include<vector>
#include<cstring>
#include<math.h>
 
using namespace std;
long long fn_stoi(string ss){
    int len;
    long long num;
 
    len = 0;
    num = 0;
    for(char c : ss)
        len++;
    for(char c : ss)
        num += (c - '0'* pow(10--len);
    return num;
}
int main(void){
    string num[4];
    long long ans;
 
    cin >> num[0>> num[1>> num[2>> num[3];
    ans = fn_stoi(num[0+ num[1]) + fn_stoi(num[2+ num[3]);
    cout << ans << "\n";
}
 
cs

근데 다른 고수님들 코드를 좀 보다보니 atoll을 사용할 수 있음도 할 수 있었다. 

728x90

'개발 > 알고리즘' 카테고리의 다른 글

1158_요세푸스문제  (0) 2020.11.15
11656_접미사배열  (0) 2020.11.15
11655_ROT13  (0) 2020.11.15
10820_문자열분석  (0) 2020.11.15
11004_K번째 수  (0) 2020.11.15