Leetcode Java Plus One

업데이트:

문제

Link

코드

class Solution {

  public int[] plusOne(int[] digits) {
    for (int idx = digits.length - 1; idx >= 0; idx--) {
      if (digits[idx] == 9) {
        digits[idx] = 0;
      } else {
        digits[idx]++;
        return digits;
      }
    }
    digits = new int[digits.length + 1];
    digits[0] = 1;
    return digits;
  }

}

결과

Link

설명

  1. 주어진 배열 digits는 숫자 한 자리 씩 이어진 숫자열의 배열로, digits의 마지막 위치에 1을 더한 결과의 동일하게 숫자 한 자리 씩 이어진 배열을 만드는 문제이다.

  2. 주어진 배열 digits를 역순으로 반복하여 주어진 배열로 결과를 만들 수 있는지 확인한다.
    • digits[idx]의 값이 9인 경우 해당 자리의 1을 더하므로, 0을 주입한다.
    • digits[idx]의 값이 9가 아닌 경우 0 ~ 8까지 숫자이므로, 해당 자리의 값을 1 증가시키고 digits를 주어진 문제의 결과로 반환한다.
  3. 반복이 정상적으로 끝난 경우 모든 digits의 모든 자리가 9로 이루어진 경우이므로, digits에 $digits.length + 1$ 크기인 새 배열을 정의하고 맨 처음 자리에 1을 넣고 주어진 문제의 결과로 반환한다.
    • 맨 처음 자리에 1을 넣고 다른 자리에 아무 값도 넣지 않은 이유는, Primitive Type인 int는 초기값이 0이므로 각 자리를 0으로 설정 할 필요가 없기 때문이다.

소스

Sample Code는 여기에서 확인 가능합니다.

댓글남기기