Add String
- addString(num1, num2)와 같은 문제다.
- 특이한 점은 num1, num2가 string type이라는 것이다.
- num1, num2가 type이 int이거나 float이면 풀기 쉽지만, 32/64bit를 넘어서는 수를 준다면, 풀기어려울 수 있고 출제자의 의도가 int, float으로 변환해서 더하라는 것이 아니다.
Algorithm
- 일반 초등학생 때 배웠던 산수를 수행하면 된다.
3 8 5 0
2 7 3
- 뒷 자리 수부터 차근차근 변환하여 더해나가고, 올림은 carry 변수에 담는다.
- 0 + 3 = 3 => 3 / 10 = 0 (carry), 3 % 10 = 3
- vector에 3 % 10 값을 담는다.
- carry(0) + 5 + 7 = 12 => 12 / 10 = 1(carry), 12 % 10 = 2
- vector에 2를 담는다.
- carry(1) + 8 + 2 = 11 => 11/ 10 = 1 (carry), 11 % 10 = 1
- vector에 1을 담는다.
- 위와 같은 방식을 통해 덧셈을 진행하고, vector를 reverse해준다.
- vector에 유용한 TimeComplexity로 담으려면 push_back이기 때문에 거꾸로 담겨있어서 reverse를 해주는 것이다.