Menu
CoddyTech

Swim in Rising Water

모든 숫자 0부터 n²-1까지가 정확히 한 번씩 들어 있는 높이의 n × n 격자를 행 목록으로 받습니다. 비는 시간 0에 내리기 시작하고, 시간 t에는 물이 어디서나 높이 t까지 차오르므로 높이가 t 이하인 모든 칸은 물에 잠깁니다. 왼쪽 위 칸에서 시작합니다. 두 칸이 모두 물에 잠겨 있을 때 서로 변을 공유하는 칸으로 헤엄쳐 갈 수 있으며, 헤엄치는 데는 시간이 걸리지 않습니다. 오른쪽 아래 칸에 도달할 수 있는 가장 이른 시간을 반환하세요.

함수

swimInWater(grid: integer-2d-array) → integer
gridinteger-2d-array
높이, n개의 숫자로 이루어진 n개 행의 목록으로
반환값integer
오른쪽 아래 셀에 도달할 수 있는 가장 빠른 시간

제약 조건

  • n == grid.length == grid[i].length
  • 1 ≤ n ≤ 100
  • 0 ≤ grid[i][j] ≤ n²-1
  • 0부터 n²-1까지의 모든 값이 정확히 한 번씩 나타납니다.

예제

입력
grid = [[0, 2], [3, 1]]
출력
2
설명
오른쪽 위 칸을 통과하는 경로는 0, 2, 1이며, 가장 높은 칸은 2입니다. 왼쪽 아래 칸을 통과하는 경로는 0, 3, 1이며, 가장 높은 칸은 3입니다. 시간 2에는 첫 번째 경로가 물에 잠기므로 답은 2입니다.

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

challenge icon

후속 질문

높이가 반복될 수 있고 10^9까지 도달한다면, 어떤 접근 방식이 여전히 변경 없이 작동하며 무엇을 대상으로 이분 탐색을 하겠습니까?

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

케이스 1

케이스 2

케이스 3

입력

grid = [[0, 2], [3, 1]]

기대값

2