๋ฌธ์
๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A+B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ A์ B๊ฐ ์ฃผ์ด์ง๋ค. (0 < A, B < 10^10000)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ A+B๋ฅผ ์ถ๋ ฅํ๋ค.
ํ์ด
๊ฐ๋จํ๊ฒ ๋ณด์ด๋ ์ซ์์ ๋ฒ์๋ฅผ ๋ณด๊ณ ๋นํฉํ๊ฒ ๋๋ ๋ฌธ์ ์ด๋ค. ๋ฒ์๊ฐ ๋งค์ฐ ํฌ๊ธฐ ๋๋ฌธ์ ์์ ํ๊ฒ string์ ์ด์ฉํ๋ ๊ฒ์ด ์ข๋ค. (์์ ๋ฅผ ๋ณด๋ฉด long ์ต๋ ๋ฒ์ + 1๋ถํฐ ์์ํ๋ค >> ์ฐ์ง ๋ง๋ผ๋ ๋ง)
๊ธฐ๋ณธ์ ์ผ๋ก ๋ฌธ์์ด์ ๊ธธ์ด๋ฅผ ๋ง์ถฐ์ค ํ ๋ค์์๋ถํฐ ํ ์๋ฆฌ์ฉ ์ฌ๋ฆผ ๊ณ์ฐ์ ํ๋ ๋ฐฉ์์ด๋ค.
01. ๊ณ์ฐ์ ํธ๋ฆฌํ๊ฒ ํ๊ธฐ ์ํด A๋ฅผ ๋ ๊ธด ๋ฌธ์์ด๋ก ๋๋๋ค(optional)
02. ์๋ฆฟ์๊ฐ ๋ค๋ฅด๋ฉด ์์ 0์ ์ฑ์์ ๋ง์ถฐ์ค๋ค.
ex) 1234, 59 -> 1234, 0059
03. ๋์์๋ถํฐ ํ ์๋ฆฌ์ฉ ์ฌ๋ฆผ ๊ณ์ฐํ๊ธฐ
04. ๋ค์ง์ด์ฃผ๊ธฐ
#include <iostream>
#include <algorithm> // reverse
using namespace std;
int main(){
// long long ์๋ฃํ ๊ธธ์ด ์ด๊ณผ -> string์ผ๋ก ๋ฐ๊ธฐ
string a, b;
cin >> a >> b;
int lenA = a.length();
int lenB = b.length();
// 01. ๋ฌด์กฐ๊ฑด A ์๋ฆฟ์ ํฌ๊ฒ ๋ง๋ค๊ธฐ
if (lenB > lenA) {
swap(a, b);
swap(lenA, lenB);
}
// 02. ์๋ฆฟ์ ๋ค๋ฅด๋ฉด ๋ง์ถฐ์ฃผ๊ธฐ
// ex) 1234, 0032
string tmp = "";
if (lenA != lenB){
for (int i=0; i<(lenA-lenB); i++)
tmp += "0";
}
b = tmp+b;
// 03. ๋ท์๋ฆฌ๋ถํฐ ํ๋์ฉ ๋๋ ์ answer์ ์ถ๊ฐ
string ans = "";
int carry = 0; // ์ฌ๋ฆผ
int x, y, digit; // ์๋ฆฌ์
for (int i=lenA-1; i>=0; i--){
x = a[i] - '0';
y = b[i] - '0';
digit = x + y;
if (carry == 1) {
digit++;
carry = 0;
}
if (digit > 9) // ๋ฐ์ฌ๋ฆผํ๋ ๊ฒฝ์ฐ
carry = 1;
ans += digit%10 + '0'; // to_string ์ฌ์ฉ X
}
// ์ถ๊ฐ๋๋ ํ ์๋ฆฌ ex) 23+95 = (1)18
if (carry == 1)
ans += "1";
// 1.1 ๋ฆฌ๋ฒ์ค ํจ์ ์ฌ์ฉ
// reverse(ans.begin(), ans.end());
// cout << ans;
// 1.2 ๋งจ ๋ค๋ถํฐ ๊ฑฐ๊พธ๋ก ์ถ๋ ฅ(์๊ฐ ๋ณต์ก๋ ๊ณ ๋ ค)
for (int i=ans.length() - 1; i>=0; i--){
cout << ans[i];
}
}
https://www.acmicpc.net/problem/10757
์ฒ์์๋ ์ด๋ป๊ฒ ํด์ผ ํ ์ง ๊ฐ์ ๋ชป ์ก์์ ๋ค๋ฅธ ์ฌ๋๋ค ์ฝ๋ ๊ฐ์๋ฅผ ๋ณด๋ฉด์ ํ๋ค! ์ฝ์ง ์์
'โจ Algorithm' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[๋ฐฑ์ค/C++] 2015๋ฒ : ์๋ค์ ํฉ 4 (0) | 2021.09.12 |
---|---|
[๋ฐฑ์ค/C++] 1764๋ฒ : ๋ฃ๋ณด์ก (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 19636๋ฒ : ์์ ์๋ฎฌ๋ ์ด์ (0) | 2021.09.12 |
[๋ฐฑ์ค/C++] 10876๋ฒ : ์ค๋ณต ๋นผ๊ณ ์ ๋ ฌํ๊ธฐ (0) | 2021.09.08 |
[๋ฐฑ์ค/C++] 11651๋ฒ : ์ขํ ์ ๋ ฌํ๊ธฐ 2 (0) | 2021.09.06 |
๋๊ธ