[LeetCode] 62. Unique Paths2 - python

코드해설!

이번 문제는 62번 문제의 심화버전! 규칙은 동일하기 위에서 아래, 왼쪽에서 오른쪽으로만 이동이 가능하고 가장 왼쪽 아래까지 도달해야하는데! 단! 장애물이 있는 경우에 가능한 모든 경로의 수를 구하는 것이다.

따라서,

설정해준 예외 상황은

  1. matrix 의 (0,0) 과 (마지막행, 마지막열) 칸에 장애물이 있다면 그건 바로 경로가 0개이므로 0개를 return 해주도록 함!
  2. 장애물이 가장 첫 열에 존재한다면, 그것은 맨 왼쪽 세로줄이 모두 경로가 없어지기 때문에 끝까지 cost 를 0으로 설정해준다 (make_zero 함수)

이 설정만 빼고, 똑같이 첫 행, 첫 열은 1로 초기화를 해준 후, 나머지 장애물이 없는 칸은 -1 로 초기화 하여서, 더해서 계산할 때, -1 로 초기화된 부분만 cost 를 update 해주도록 하였다. (장애물로 설정한 cost 0 값도 업데이트 되면 안되므로!)

태그: ,

카테고리:

업데이트:

댓글남기기