Scribbling

LeetCode: 63. Unique Paths II 본문

Computer Science/Coding Test

LeetCode: 63. Unique Paths II

focalpoint 2021. 9. 24. 17:55
class Solution:
    def uniquePathsWithObstacles(self, obstacleGrid: List[List[int]]) -> int:
        n, m = len(obstacleGrid[0]), len(obstacleGrid)
        board = [[0] * n for _ in range(m)]
        board[0][0] = 1
        obstacles = []
        for i in range(m):
            for j in range(n):
                if obstacleGrid[i][j] == 1:
                    board[i][j] = 0
                    obstacles.append((i, j))
        
        for j in range(1, n):
            if (0, j) in obstacles:
                continue
            board[0][j] = board[0][j-1]
        for i in range(1, m):
            if (i, 0) in obstacles:
                continue
            board[i][0] = board[i-1][0]       
        
        for i in range(1, m):
            for j in range(1, n):
                if (i, j) in obstacles:
                    continue
                board[i][j] = board[i-1][j] + board[i][j-1]
        return board[m-1][n-1]

'Computer Science > Coding Test' 카테고리의 다른 글

LeetCode: 67. Add Binary  (0) 2021.09.26
LeetCode: 64. Minimum Path Sum  (0) 2021.09.24
LeetCode: 62. Unique Paths  (0) 2021.09.24
LeetCode: 61. Rotate List  (0) 2021.09.24
LeetCode: 60. Permutation Sequence  (0) 2021.09.24