문제 URL : https://www.softeer.ai/practice/6282
문제접근법 : 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)))
궁금한점 이나 논리적인 오류 혹은 모르는점 어떤질문이든 댓글은 언제나 환영입니다.
'Softeer' 카테고리의 다른 글
Softeer 조립라인 (c++) (1) | 2024.12.02 |
---|---|
Softeer [HSAT 5회 정기 코딩 인증평가 기출] 업무 처리(c++) (0) | 2024.12.02 |
Softeer 우물 안 개구리 (python 풀이) (0) | 2024.12.01 |
Softeer GINI야 도와줘 c++ (2) | 2024.11.15 |
Softeer [21년 재직자 대회 예선] 이미지 프로세싱 c++ (0) | 2024.11.15 |