Menu
CoddyTech

Longest Increasing Path in a Matrix

matrix는 m개의 행과 n개의 열로 이루어진 정수 격자이며, 행들의 목록으로 주어집니다. 경로는 한 번에 한 칸씩 위, 아래, 왼쪽 또는 오른쪽으로 이동하며(대각선 이동이나 가장자리를 넘어 이어지는 이동은 불가), 이동할 때마다 반드시 엄격하게 더 큰 값의 칸으로 이동해야 합니다. 이러한 경로 중 가장 긴 경로에 포함된 칸의 수를 반환하세요. 칸 하나만으로도 길이가 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에서 시작하는 최선의 경로는 1, 2, 7, 8, 9와 1, 6, 7, 8, 9이며, 각각 5개의 칸으로 이루어집니다.

lock icon제출 시 숨은 테스트 +18개

challenge icon

후속 질문

가장 긴 경로의 길이뿐만 아니라 경로에 포함된 셀들도 반환할 수 있나요?

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

케이스 1

케이스 2

케이스 3

입력

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

기대값

7