one line of code at a time

[leetcode] 463. Island Perimeter 파이썬 코드 본문

leetcode

[leetcode] 463. Island Perimeter 파이썬 코드

oloc 2024. 9. 24. 07:42

https://leetcode.com/problems/island-perimeter/

 

class Solution(object):
    def islandPerimeter(self, grid):
        m, n = len(grid), len(grid[0])
        perimeter = 0
        nei_dict = {0: 4, 1: 3, 2: 2, 3: 1, 4: 0}
        for i in range(m):
            for j in range(n):
                if grid[i][j] == 1:
                    # check neighbors
                    nei = 0
                    directions = [(0, 1), (0, -1), (1, 0), (-1, 0)]
                    for dr, dc in directions:
                        nr, nc = i + dr, j + dc
                        if 0 <= nr < m and 0 <= nc < n and grid[nr][nc] == 1:
                            nei += 1
                    perimeter += nei_dict[nei]

        return perimeter