[Softeer] 장애물 인식 프로그램

CHAEN·2022년 9월 10일
0

problem solving

목록 보기
30/33

문제

접근 방법

  • dfs 재귀호출 횟수를 체크

나의 풀이 - Python

import sys

n = int(input())

graph = [list(map(int, input())) for _ in range(n)]

def dfs(x, y):
    if x < 0 or x >= n or y < 0 or y >= n:
        return 0
    if graph[x][y]:
        graph[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

answer = []
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 a in answer:
    print(a)
profile
공부중입니다

0개의 댓글

관련 채용 정보