[BOJ]๋ฐฑ์ค€#16390 Silver 2 Shebaโ€™s Amoebas๐Ÿฆ  (Python, ํŒŒ์ด์ฌ)

์ž„์ค€์„ฑยท2022๋…„ 5์›” 8์ผ
0

๋ฐฑ์ค€ Algorithm

๋ชฉ๋ก ๋ณด๊ธฐ
5/59
post-thumbnail

๋ฐฑ์ค€ 16390๋ฒˆ
https://www.acmicpc.net/problem/16390


๋ฌธ์ œ




ํ›„๊ธฐ

โฐ ํ’€์ด์‹œ๊ฐ„ 20๋ถ„ ++โฐ

์ƒ, ํ•˜, ์ขŒ, ์šฐ, ๋Œ€๊ฐ์„ ์ด ์ผ์น˜ํ•  ๋•Œ โ€œ#โ€์„ ํ•˜๋‚˜์˜ ๋ฌถ์Œ์œผ๋กœ ๋ณด์•„ ๊ณ„์‚ฐํ•˜๋Š” ๊ฐ„๋‹จํ•œ DFS ๋ฌธ์ œ๋‹ค. ์ฃผ์–ด์ง„ ์ขŒํ‘œ ๋ฐ”๊นฅ์œผ๋กœ ๋‚˜๊ฐˆ ๋•Œ์™€ ๋Œ€๊ฐ์„ ๋งŒ ๊ณ ๋ คํ•˜๋ฉด ์‰ฝ๊ฒŒ ๋ฌธ์ œ์˜ ๋‹ต์„ ์–ป์„ ์ˆ˜ ์žˆ๋‹ค.

๋‚˜์˜ ํ’€์ด

import sys

input = sys.stdin.readline

sys.setrecursionlimit(10**7)

n, m= map(int,input().split())

graph = []

for i in range(n):

    graph.append(list(map(str,input().strip())))


def dfs(x,y):

    if x<=-1 or x>=n or y<=-1 or y>=m:

        return False
    
    
    if graph[x][y] == "#":

        graph[x][y] = "."

        dfs(x,y+1)
        dfs(x,y-1)
        dfs(x-1,y)
        dfs(x-1,y+1)
        dfs(x-1,y-1)
        dfs(x+1,y)
        dfs(x+1,y+1)
        dfs(x+1,y-1)

        return True
    
    return False

result= 0 

for i in range(n):

    for j in range(m):

        if dfs(i,j)== True:

            result +=1

print(result)





profile
์•„๋ฌด๋ตํฌ ์žˆ์ด

0๊ฐœ์˜ ๋Œ“๊ธ€