반응형
Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
Tags
- 자소서
- 제노블레이드 2
- DP
- 리트코드
- LeetCode
- 알고리즘
- 코딩테스트
- Pro-Con
- 프로콘
- git
- 프로그래머스
- C++
- Github
- baekjoon
- ASF-110
- 격리수준
- 프로콘 갈림현상
- GitHub Desktop
- programmers
- Ultimate Search
- 백트래킹
- python3
- 취준
- SRE
- 알고리즘 종류 정리
- Python
- 백준
- Algorithmus
- 네이버 검색 시스템
- algorithm
Archives
- Today
- Total
산타는 없다
[백준 / BAEKJOON] 10757번 큰 수 A+B - C++ 본문
반응형
문제 원문
문제
두 정수 A와 B를 입력받은 다음, A+B를 출력하는 프로그램을 작성하시오.
입력
첫째 줄에 A와 B가 주어진다. (0 < A, B < 10¹⁰⁰⁰⁰)
출력
첫째 줄에 A+B를 출력한다.
예제
풀이
자릿수가 10의 만 제곱이기 때문에 Integer 자료형으로는 처리할 수 없고
string이나 int나 char의 배열을 사용해야 하는데 저는 string을 사용하여 풀었습니다
입력받은 각 문자열의 맨 뒤부터 시작하여 전체 순회하였으며 먼저 끝나는 수에 대한 예외처리를 해주었습니다.
계산은 각 문자열 자릿수와 carry값을 더하는 것으로 진행하였고
계산한 값이 10 이상이면 carry을 true 처리하여 자리 올림수를 처리하였습니다.
문자열을 모두 순회한 후 마지막 carry값이 true일 경우 자리 올림수 처리를 마저 진행해 주었습니다.
성공 코드
#include <vector>
#include <iostream>
#include <string>
using namespace std;
int main()
{
string a, b;
ios_base::sync_with_stdio(0);
cin.tie(0);
cin >> a >> b;
int a_pos = a.size() - 1;
int b_pos = b.size() - 1;
int a_num, b_num, temp;
bool bCarry = false;
string strResult = "";
while (a_pos >= 0 || b_pos >= 0)
{
if (a_pos < 0) //문자열 a 값 저장 및 예외처리
a_num = 0;
else
a_num = a[a_pos--] - '0';
if (b_pos < 0) //문자열 b 값 저장 및 예외처리
b_num = 0;
else
b_num = b[b_pos--] - '0';
temp = a_num + b_num + bCarry; // 저장할 값 계산
if (temp >= 10) // Carry값 계산
{
temp -= 10;
bCarry = true;
}
else
bCarry = false;
strResult = to_string(temp) + strResult; //문자열 저장
}
if (bCarry) //만약 마지막 연산에서 Carry값이 있을경우 자리올림수 처리
{
strResult = "1" + strResult;
}
if (strResult == "")
strResult = "0";
cout << strResult << endl;
return 0;
}
결과
반응형
'코딩테스트 > 백준' 카테고리의 다른 글
[백준 / BAEKJOON] 9251번 LCS - C++ (0) | 2021.01.23 |
---|---|
[백준 / BAEKJOON] 1912번 연속합 - C++ (0) | 2021.01.23 |
[백준 / BAEKJOON] 2580번 스도쿠 - C++ (0) | 2021.01.21 |
[백준 / BAEKJOON] 10814번 나이순 정렬 - C++ (0) | 2021.01.12 |
[백준 / BAEKJOON] 2108번 통계학 풀이 - C++ (0) | 2020.12.30 |
Comments