Menu
CoddyTech

Longest Increasing Path in a Matrix

m개의 행과 n개의 열로 이루어진 정수 격자인 matrix를 행의 리스트로 받습니다. 경로는 위, 아래, 왼쪽 또는 오른쪽으로 이동하며(대각선 이동이나 가장자리에서 반대편으로 이어지는 이동은 불가), 이동할 때마다 반드시 이전보다 엄격히 큰 값의 셀에 도착해야 합니다. 이러한 경로 중 가장 긴 경로에 포함된 셀의 수를 반환하세요. 셀 하나도 길이가 1인 경로입니다.

함수

longestIncreasingPath(matrix: integer-2d-array) → integer
matrixinteger-2d-array
길이가 모두 같은 행들의 목록으로 표현된 값의 격자
반환값integer
가장 긴 엄격히 증가하는 경로에 있는 셀의 수

제약 조건

  • 1 ≤ m, n ≤ 100, 여기서 m = matrix.length이고 n = matrix[i].length입니다.
  • 모든 행의 길이는 n으로 같습니다.
  • 0 ≤ matrix[i][j] ≤ 231-1

예제

입력
matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]
출력
7
설명
경로 3, 4, 5, 6, 7, 8, 9는 오른쪽 열을 따라 아래로 내려가고, 맨 아래 행을 따라간 다음 가운데 열을 따라 위로 올라가 9에 도달합니다. 7개의 셀입니다. 가장 작은 값인 1에서 시작하는 최적의 경로는 5개의 셀로 이루어져 있습니다.
challenge icon

후속 질문

가장 긴 경로 하나의 길이와 함께 해당 경로의 셀들도 반환할 수 있나요?

코드 초기화
def longestIncreasingPath(matrix):
    # 여기에 코드를 작성하세요

테스트 #1

테스트 #2

테스트 #3

인자

matrix = [[9, 8, 3], [2, 7, 4], [1, 6, 5]]

예상 출력

7