66. 플러스 원

발행: (2026년 1월 1일 오후 10:01 GMT+9)
2 min read
원문: Dev.to

Source: Dev.to

문제 설명

정수 배열 digits가 주어집니다. digits[i]는 해당 정수의 i번째 자리 숫자를 나타냅니다. 숫자는 가장 높은 자리부터 낮은 자리 순서(왼쪽→오른쪽)로 정렬되어 있습니다. 정수는 앞에 0이 없습니다.

작업: 정수를 1만큼 증가시킨 뒤, 결과 배열을 반환합니다.

예시

입력출력설명
digits = [1,2,3][1,2,4]123 + 1 = 124
digits = [4,3,2,1][4,3,2,2]4321 + 1 = 4322
digits = [9][1,0]9 + 1 = 10

제약 조건

  • 1 = 0; $i--) {

솔루션 (PHP)

<?php
function plusOne(array $digits): array {
    $carry = 1;
    for ($i = count($digits) - 1; $i >= 0; $i--) {
        $sum = $digits[$i] + $carry;
        $digits[$i] = $sum % 10;
        $carry = intdiv($sum, 10);
        if ($carry === 0) {
            break; // no further propagation needed
        }
    }
    if ($carry === 1) {
        array_unshift($digits, 1);
    }
    return $digits;
}

// Test cases
print_r(plusOne([1, 2, 3]));   // [1, 2, 4]
print_r(plusOne([4, 3, 2, 1])); // [4, 3, 2, 2]
print_r(plusOne([9]));          // [1, 0]
?>
Back to Blog

관련 글

더 보기 »

주간 챌린지: 새해, 새로운 도전

새해 복 많이 받으세요, 여러분. 각 주마다 Mohammad S. Anwar가 The Weekly Challenge https://theweeklychallenge.org/를 보내며, 우리 모두가 해결책을 생각해볼 기회를 제공합니다.