본문 바로가기
Softeer

Softeer 장애물 인식 프로그램

by 콩순이냉장고 2024. 12. 1.

문제 URL : https://www.softeer.ai/practice/6282

 

Softeer - 현대자동차그룹 SW인재확보플랫폼

 

www.softeer.ai

 

문제접근법 : dfs or bfs를 몇번 사용하는지 묻는문제입니다.

백준에도 똑같은 문제가 있는문제이고 dfs나 bfs 기본기를 묻는문제입니다.

 

소스코드 : 

from collections import deque
n = int(input())
board = [[int(c) for c in input()] for i in range(n)]
res = []
dy,dx = [-1,0,1,0],[0,1,0,-1]
def isrange(y,x):
    return 0<=y<n and 0<=x<n
def dfs(y,x):
    global board
    if not isrange(y,x):
        return 0
    if not board[y][x]:
        return 0
    board[y][x]=0
    total = 1
    for i in range(4):
        ny =y+dy[i]
        nx =x+dx[i]
        total+=dfs(ny,nx)
    return total

for i in range(n):
    for j in range(n):
        if board[i][j]:
            res.append(dfs(i,j))

res.sort()
print(len(res))
print('\n'.join(map(str,res)))

 

궁금한점 이나 논리적인 오류 혹은 모르는점 어떤질문이든 댓글은 언제나 환영입니다.