장애물 인식 프로그램

2021. 9. 28. 21:52Algorithm

    목차
반응형

 

grid = []
N = int(sys.stdin.readline())
for _ in range(N):
    line = str(sys.stdin.readline()).strip()
    line = list(line)
    line = list(map(int, line))
    grid += line,



def dfs(y, x):
    if 0 == grid[y][x]:
        return 0

    cnt = 1
    grid[y][x] = 0

    for oy, ox in [(1, 0), (-1, 0), (0, 1), (0, -1)]:
        ny, nx = oy + y, ox + x
        if not (0 <= ny < N and 0 <= nx < N):
            continue

        cnt += dfs(ny, nx)

    return cnt


cnts = []
for y in range(N):
    for x in range(N):
        if 1 == grid[y][x]:
            cnts += dfs(y, x),

cnts.sort()
print(len(cnts))
for cnt in cnts:
    print(cnt)

 

반응형

'Algorithm' 카테고리의 다른 글

알고리즘: 지도 자동 구축  (0) 2021.09.28
GBC  (0) 2021.09.28
택배 마스터 광우  (0) 2021.09.28
차세대 지능형 교통시스템  (0) 2021.09.28
2008. Maximum Earnings From Taxi (Medium)  (0) 2021.09.21