2023. 4. 8. 03:14ใCoding Test/BOJ
๐๋ฌธ์ ๋ณด๋ฌ๊ฐ๊ธฐ
๋ฌธ์ ์ค๋ช
๋ ์ ์ A์ B๋ฅผ ์ ๋ ฅ๋ฐ์ ๋ค์, A+B๋ฅผ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
์ ๋ ฅ
์ฒซ์งธ ์ค์ A์ B๊ฐ ์ฃผ์ด์ง๋ค. (0 < A,B < 1010000)
์ถ๋ ฅ
์ฒซ์งธ ์ค์ A+B๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ์ถ๋ ฅ
ํ์ด ์ ๋ต
์ ๋ ฅ ๋ฒ์๊ฐ ๋ณด์๋ค์ํผ, ๋ง๋ ์ ๋๊ฒ ํฐ ์ซ์์ ๋๋ค. Java๋ BigInteger ํด๋์ค๊ฐ, Python์ ์ฌ์ง์ด ๊ทธ๋ฅ ํด๋ ๋๋๋ฐ, C++์ ์ ์ ๋ผ์...? unsigned long long ์๋ฃํ์ผ๋ก๋ ์ปค๋ฒํ ์ ์๋ค๊ณ ํ๋จํ์ฌ, ๋ฌธ์์ด(string)๋ก ์ฒ๋ฆฌํ์ฌ ํ์ด์ผ๊ฒ ๋ค ์๊ฐํ์ต๋๋ค. ์ฃผ์ํด์ผ ํ ์ฌํญ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ ์์ ๊ฐ์ฅ ๋ท์๋ฆฌ๋ถํฐ ์๋ก ๋ํ๋, carry ์ฒ๋ฆฌ๋ฅผ ์ํด์ค์ผ ํ๋ค. (๋งค์ฐ ์ค์)
- ๋ ์์ ์๋ฆฟ์๊ฐ ์๋ก ๋ค๋ฅผ ๊ฒฝ์ฐ, ๋ ๊ธด ์์ ์ ๋ถ๋ถ์ ๊ทธ๋๋ก ๋ฃ์ด์ค๋ค.
์ฒ์์๋ Iterator๋ฅผ ํตํด ์ ๊ทผ์ ํ์ง๋ง, carry ์ฒ๋ฆฌํ๊ธฐ๊ฐ ์ ๋งคํ๊ณ , ๋ค๋ฅธ ๋ถ๋ค์ ํ์ด๋ฅผ ์กฐ๊ธ ์ฐธ๊ณ ํ์ฌ ํ์์ต๋๋ค.
์์ค ์ฝ๋ ๋ฐ ๊ฒฐ๊ณผ
#include <iostream>
#include <string>
using namespace std;
int main()
{
string num1, num2;
cin >> num1 >> num2;
string answer(max(num1.size(), num2.size()), '0');
bool carry = false;
for (int i = 0; i < answer.size(); i++)
{
int sum = 0;
if (i < num1.size())
sum += num1[num1.size() - i - 1] - '0';
if (i < num2.size())
sum += num2[num2.size() - i - 1] - '0';
sum += carry;
carry = sum / 10;
answer[answer.size() - i - 1] = sum % 10 + '0';
}
if (carry)
{
answer.insert(answer.begin(), carry + '0');
}
cout << answer;
return 0;
}
'Coding Test > BOJ' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BOJ] 9663๋ฒ | N-Queen (C++) (0) | 2023.05.01 |
---|---|
[BOJ] 1018๋ฒ | ์ฒด์คํ ๋ค์ ์น ํ๊ธฐ (C++) (0) | 2023.04.13 |
[BOJ] 2869๋ฒ | ๋ฌํฝ์ด๋ ์ฌ๋ผ๊ฐ๊ณ ์ถ๋ค (C++) (0) | 2023.04.07 |
[BOJ] 11404๋ฒ | ํ๋ก์ด๋ (Python3) (0) | 2022.09.15 |
[BOJ] 10610๋ฒ | 30 (Python3) (0) | 2022.07.20 |