Menu
CoddyTech

Add Two Numbers

음수가 아닌 두 정수가 주어지며, 각 정수는 가장 낮은 자릿수부터 저장된 단일 연결 리스트로 표현됩니다. 첫 번째 리스트에서 노드 i는 숫자 values1[i]를 담고 노드 next1[i]에 연결됩니다. 두 번째 리스트도 next2와 values2를 사용해 같은 방식으로 구성됩니다. 두 리스트 모두 -1은 리스트의 끝을 나타내며 헤드는 노드 0입니다. 노드는 리스트 순서대로 저장되어 있지 않으므로 연결을 따라가세요.

두 수의 합을 가장 낮은 자릿수부터 나타내는 숫자들을 반환하세요.

함수

addTwoNumbers(next1: integer-array, values1: integer-array, next2: integer-array, values2: integer-array) → integer-array
next1integer-array
첫 번째 숫자의 각 노드가 연결되는 노드의 인덱스 또는 마지막 노드의 경우 -1
values1integer-array
첫 번째 숫자의 각 노드가 보유한 숫자
next2integer-array
두 번째 숫자의 각 노드가 연결되는 노드의 인덱스 또는 마지막 노드의 경우 -1
values2integer-array
두 번째 숫자의 각 노드가 담고 있는 숫자
반환값integer-array
합계의 자릿수, 가장 낮은 자리부터

제약 조건

  • 1 ≤ L1 ≤ 100이며, 여기서 L1은 next1과 values1의 길이입니다.
  • 1 ≤ L2 ≤ 100이며, 여기서 L2는 next2와 values2의 길이입니다.
  • 0 ≤ values1[i], values2[j] ≤ 9
  • next1의 각 항목은 -1이거나 첫 번째 리스트의 노드 인덱스이며, next2의 각 항목은 -1이거나 두 번째 리스트의 노드 인덱스입니다.
  • 노드 0에서 시작하여 각 리스트는 모든 노드를 정확히 한 번 방문한 다음 -1에 도달합니다. 순환은 없습니다.
  • 어떤 숫자에도 앞에 0이 붙지 않습니다. 목록의 마지막 노드에는 0이 아닌 숫자가 들어 있습니다. 단, 목록이 한 자리 숫자인 0인 경우는 예외입니다.

예제

입력
next1 = [2, -1, 1]values1 = [8, 6, 1]next2 = [2, -1, 1]values2 = [7, 5, 2]
출력
[5, 4, 1, 1]
설명
첫 번째 리스트는 노드 0, 2, 1을 방문하고 8, 1, 6을 읽어 숫자 618을 만듭니다. 두 번째 리스트는 7, 2, 5를 읽어 숫자 527을 만듭니다. 두 수의 합은 1145이므로 답은 5, 4, 1, 1입니다.
challenge icon

후속 질문

목록에 최상위 자릿수가 먼저 저장되어 있다면 숫자를 어떻게 더할까요?

코드 초기화
def addTwoNumbers(next1, values1, next2, values2):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자들

next1 = [2, -1, 1]
values1 = [8, 6, 1]
next2 = [2, -1, 1]
values2 = [7, 5, 2]

예상 출력

[5, 4, 1, 1]