[핵심]
배추문제랑 거의 동일한 문제
차이점은 수를 하나더 카운팅 해주는것뿐
While문을 활용한 del 기억하자!!!
num = int(input())
lit = []
dx = [0,0,1,-1]
dy = [1,-1,0,0]
ans =[]
cot =[]
def recu(x,y):
cnt = 0
stack = [[x,y]]
while stack:
x = stack[0][0]
y = stack[0][1]
del stack[0]
cnt+=1
lit[x][y] = '0'
for i in range(4):
X = int(x)+dx[i]
Y = int(y)+dy[i]
if 0<=X<num and 0<= Y<num and lit[X][Y] =='1':
stack.append([X,Y])
lit[X][Y] ='0'
return cnt
for i in range(num):
t= input()
t = list(t)
lit.append(t)
for i in range(num):
for j in range(num):
if lit[i][j] =='1':
cnt = recu(i,j)
ans.append(cnt)
print(len(ans))
ans.sort()
for i in ans:
print(i)
'Data Science > 알고리즘 공부' 카테고리의 다른 글
[백준][파이썬] 7569 토마토(2) - 3차원 (0) | 2020.04.01 |
---|---|
[백준][파이썬] 2178 미로탈출 (최단거리) (0) | 2020.03.30 |
[백준][파이썬] 1012 유기농 배추 BFS (0) | 2020.03.26 |
[파이썬][백준] 1012 GCD (0) | 2020.03.26 |
[백준][파이썬] 13015 별찍기(23) (0) | 2020.03.23 |
댓글