200. Number of Islands - python3
200. Number of Islands
Given an m x n 2d grid map of '1's (land) and '0's (water), return the number of islands.
An island is surrounded by water and is formed by connecting adjacent lands horizontally or vertically. You may assume all four edges of the grid are all surrounded by water.
모르겠어서 루션이 보고 제 스탈로 각색했읍니다.
Recursion
My Answer 1: Accepted (Runtime: 120 ms - 97.36% / Memory Usage: 15.6 MB - 33.33%)
class Solution:
def numIslands(self, grid: List[List[str]]) -> int:
def isIsland(i, j):
grid[i][j] = '0'
if i-1 > =0 and grid[i-1][j] == '1':
isIsland(i-1, j)
if i+1 < len(grid) and grid[i+1][j] == '1':
isIsland(i+1, j)
if j-1 > =0 and grid[i][j-1] == '1':
isIsland(i, j-1)
if j+1 < len(grid[i]) and grid[i][j+1] == '1':
isIsland(i, j+1)
count = 0
for i in range(0, len(grid)):
for j in range(0, len(grid[i])):
if grid[i][j] == '1':
count += 1
isIsland(i, j)
return count
isIsland 함수를 만들어서 인접한 곳에 1이 있는지 확인하고 방문한 곳의 값은 0으로 바꿔주었다.
첨엔 전에 풀었던 36번 스도쿠 문제를 응용해야하나...
아님 n중 for 문 써야되나 했지만..
재귀가 말끔하게 해결~~
Author And Source
이 문제에 관하여(200. Number of Islands - python3), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@jsh5408/200.-Number-of-Islands-python3저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)