코린이의 소소한 공부노트

[LeetCode/Easy] 989. Add to Array-Form of Integer 본문

코딩테스트 풀이/JAVA

[LeetCode/Easy] 989. Add to Array-Form of Integer

무지맘 2023. 4. 3. 11:50

1. Input

1) int[] num

2) int k

 

2. Output

1) 배열로 표현된 numk의 합을 배열로 표현한 결과

 

3. Constraint

1) 1 <= num.length <= 10^4

2) 0 <= num[i] <= 9

3) num0으로만 구성되어 있지 않다.

4) 1 <= k <= 10^4

 

4. Example

Input: num = [1,2,0,0], k = 34 -> Output: [1,2,3,4]

Input: num = [2,1,5], k = 806 -> Output: [1,0,2,1]

 

5. Code

1) 첫 코드(2023/04/03)

Stack<Integer> s = new Stack<Integer>();
List<Integer> answer = new ArrayList<Integer>();
int index = num.length-1, sum = 0;
while(k>0 && index>=0){
    sum += k%10 + num[index--];
    k /= 10;
    s.push(sum%10);
    sum = sum>=10 ? 1 : 0;
}
for(int i=index ; i>=0 ; i--){
    sum += num[i];
    s.push(sum%10);
    sum = sum>=10 ? 1 : 0;
}
if(k>0)
    while(k>0){
        sum += k%10;
        s.push(sum%10);
        k /= 10;
        sum = sum>=10 ? 1 : 0;
    }
if(sum==1)
    s.push(1);
while(!s.empty())
    answer.add(s.pop());
return answer;

- 무지무지 성능 나쁜 코드..