10757번: 큰 수 A+B
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
www.acmicpc.net
#include <iostream>;
#include <vector>;
#include <algorithm>;
#include <string>;
using namespace std;
int n, sum;
int num1[10001], num2[10001];
string a, b, tmp;
vector<int> v;
int main()
{
cin >> a >> b;
if (a.size() < b.size())
{
tmp = a;
a = b;
b = tmp;
}
for (int i = 0; i < a.size(); i++)
num1[i + 1] = a[i] - '0';
for (int i = 0; i < b.size(); i++)
num2[i + 1 + (a.size() - b.size())] = b[i] - '0';
for (int i = a.size(); i > 0; i--)
{
sum = num1[i] + num2[i];
if (sum >= 10)
{
num1[i - 1]++;
sum -= 10;
}
v.push_back(sum);
}
if (num1[0] != 0) cout << 1;
for (int i = v.size() - 1; i >= 0; i--)
{
cout << v[i];
}
}
변수에 담을 수 없는 정수의 합을 배열을 활용하여 구해야하는 문제 싫어하는 유형인데 다시 확인하면서 로직을 숙지해야겠다.
'Algorithm > BOJ' 카테고리의 다른 글
C#) [BOJ] 1158 요세푸스 문제 (0) | 2023.02.18 |
---|---|
C#) [BOJ] 1254 팰린드롬 만들기 ★ (0) | 2023.02.14 |
C#) [BOJ] 21921 블로그 ★ (0) | 2023.02.13 |
C#) [BOJ] 2178 미로 탐색 ★ (0) | 2023.02.10 |
C#) [BOJ] 2108 통계학 ★ (0) | 2023.02.09 |