문제
NxM 크기의 얼음 틀이 있다. 구멍이 뚫린 부분은 0, 칸막이가 있는 부분을 1로 설정한다. 구멍이 뚫린 부분이 서로 붙어 있다면 큰 한 덩어리로 간주한다. 얼음 틀이 주어졌을 때 생성되는 총 아이스크림의 개수를 구하라.
입력 조건
1. 첫 번째 줄에 얼음틀의 세로 길이 N과 가로 길이 M이 주어진다.
2. 두 번째 줄부터 N+1번째 줄까지 얼음 틀의 형태가 주어진다.
출력 조건
1. 한 번에 만들 수 있는 아이스크림의 개수를 출력한다.
내 코드
# 맵 크기 입력받는다.
n,m = map(int,input().split())
# 맵 모양 입력받는다.
graph = []
for i in range(n):
graph.append(list(map(int,input())))
def icy(x,y):
if x<=-1 or x>=n or y<=-1 or y>=m:
return False
if graph[x][y] == 0:
graph[x][y] ==1
icy(x-1,y)
icy(x,y-1)
icy(x+1,y)
icy(x,y+1)
return True
return False
result = 0
for i in range(n):
for j in range(m):
if icy(i,j)==True:
result+=1
print(result)
참고
이것이 코딩테스트다 with Python (나동빈 저)