[Leetcode] 3461. Check If Digits Are Equal in String After Operations I

RexiaN·2025년 10월 23일

문자열을 주고 인접한 두 수를 더한 뒤 나머지를 새로운 값으로 설정한다. 두 자리 숫자가 될 때 까지 해당 연산을 반복한 뒤 두 숫자가 같으면 true, 아니면 false 를 반환한다.

예전에 풀었던 배열에서의 삼각합 구하기 에서의 풀이처럼 새로 구하는 값이 원본배열보다 짧아지는 경우 해당 배열을 재사용하면 공간복잡도를 아낄 수 있다. 길이를 1 씩 줄여가면서 인접한 두 수의 모듈로 연산을 진행했다.

function hasSameDigits(s: string): boolean {
    let len = s.length
    const arr: number[] = s.split('').map(n => Number(n))

    while(len > 2) {
        for (let i = 0; i < len - 1; i++) {
            arr[i] = (arr[i] + arr[i + 1]) % 10
        }

        len -= 1
    }

    return (arr[0] === arr[1])
};

손쉽게 통과!

profile
Don't forget Rule No.1

0개의 댓글