코린이의 소소한 공부노트

[프로그래머스/Lv.0] 두 수의 합 본문

코딩테스트 풀이/JAVA

[프로그래머스/Lv.0] 두 수의 합

무지맘 2023. 5. 1. 20:47

1. Input, Output, Example

- a + b의 값을 문자열로 반환

 

2. Constraint

1) 1 a의 길이 100,000

2) 1 b의 길이 100,000

3) ab는 숫자로만 이루어져 있다.

4) ab는 정수 0이 아니라면 0으로 시작하지 않는다.

 

3. Code

1) 첫 코드(2023/05/01)

import java.util.*;
class Solution {
    public String solution(String a, String b) {
        Stack<Integer> stack = new Stack<>();
        int ai = a.length()-1, bi = b.length()-1, carry = 0;
        while(ai>=0 || bi>=0){
            int n = carry;
            if(ai>=0)
                 n += a.charAt(ai--)-'0';
            if(bi>=0)
                n += b.charAt(bi--)-'0';
            carry = n/10;
            stack.push(n%10);
        }        
        StringBuilder sb = new StringBuilder();
        if(carry==1)
            sb.append(1);
        while(!stack.empty())
            sb.append(stack.pop());        
        return sb.toString();
    }
}