간단하게 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 |