[LeetCode] Alternating Digit Sum

아르당·2026년 10월 6일

LeetCode

목록 보기
539/563
post-thumbnail

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

Problem

양의 정수 n이 주어진다. n의 각 자릿수는 다음 규칙에 따른 부호를 갖는다.

  • 가장 중요한 자릿수에는 양의 부호가 부여된다.
  • 각 자릿수는 인접한 자릿수와 반대 부호를 갖는다.

각 자릿수를 해당 부호와 함께 모두 더한 값을 반환해라.

Example

#1
Input: n = 521
Output: 4
Explanation: (+5) + (-2) + (+1) = 4

#2
Input: n = 111
Output: 1
Explanation: (+1) + (-1) + (+1) = 1

#3
Input: n = 886996
Output: 0
Explanation: (+8) + (-8) + (+6) + (-9) + (+9) + (-6) = 0

Constraints

  • 1 <= n <= 10^9

Solved

class Solution {
    public int alternateDigitSum(int n) {
        int digits = 0;
        int temp = n;

        while(temp != 0){
            digits++;
            temp /= 10;
        }

        int sum = 0;
        int sign = (digits & 1) == 0 ? -1 : 1;

        while(n != 0){
            sum += (n % 10) * sign;
            sign *= -1;
            n /= 10;
        }

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

0개의 댓글