[LeetCode] Add to Array-Form of Integer

아르당·어제

LeetCode

목록 보기
212/216
post-thumbnail

문제를 이해하고 있다면 바로 풀이를 보면 됨
전체 코드로 바로 넘어가도 됨
마음대로 번역해서 오역이 있을 수 있음

Problem

정수 num의 배열 형태는 해당 숫자의 각 자릿수를 왼쪽에서 오른쪽 순서로 된 배열이다.

  • 예를 들어, num = 1321이면 배열 형태는 [1, 3, 2, 1]이다.

정수 num과 정수 k가 주어졌을 때, num + k의 배열 형태를 반환해라.

Example

#1
Input: num = [1, 2, 0, 0], k = 34
Output: [1, 2, 3, 4]
Explanation: 1200 + 34 = 1234

#2
Input: num = [2, 7, 4], k = 181
Output: [4, 5, 5]
Explanation: 274 + 181 = 455

#3
Input: num = [2, 1, 5], k = 806
Output: [1, 0, 2, 1]
Explanation: 215 + 806 = 1021

Constraints

  • 1 <= num.length <= 10^4
  • 0 <= num[i] <= 9
  • num은 0 자체를 제외하고 제일 앞에 0이 포함되지 않는다.
  • 1 <= k <= 10^4

Solved

class Solution {
    public List<Integer> addToArrayForm(int[] num, int k) {
        List<Integer> result = new LinkedList<>();

        for(int i = num.length - 1; i >= 0; i--){
            result.add(0, (num[i] + k) % 10);
            k = (num[i] + k) / 10;
        }

        while(k > 0){
            result.add(0, k % 10);
            k /= 10;
        }

        return result;
    }
}
profile
내 마음대로 코드 작성하는 세상

0개의 댓글