https://softeer.ai/practice/info.do?idx=1&eid=409
DFS 알고리즘을 이용했다.
import sys
n = int(input())
Map = [list(map(int, input())) for _ in range(n)]
answer = []
res = 0
def dfs(x, y):
if x<0 or x>=n or y<0 or y>=n:
return 0
if Map[x][y]:
Map[x][y] = 0
count = 1
count += dfs(x-1, y)
count += dfs(x, y-1)
count += dfs(x+1, y)
count += dfs(x, y+1)
return count
return 0
for i in range(n):
for j in range(n):
res = dfs(i, j)
if res:
answer.append(res)
print(len(answer))
answer.sort()
for i in answer:
print(i)
'코딩테스트 연습' 카테고리의 다른 글
[Softeer] 금고털이 (0) | 2023.09.20 |
---|---|
[Softeer] 8단 변속기 (0) | 2023.09.19 |
[Softeer] 지도 자동 구축 (0) | 2023.09.14 |
[Softeer] 비밀 메뉴 (0) | 2023.09.13 |
[Programmers] 괄호 회전하기 (0) | 2023.09.12 |