알고리즘_코딩테스트/이것이 코딩테스트다
[DFS] 음료수 얼려 먹기
논곰
2021. 9. 25. 12:15
1. 문제
- 특이하게 생긴 얼음 틀에 얼음을 몇 개나 만들 수 있는지를 구함
- 주변에 유사한 값의 개수를 찾는다.
2. 코드 구현
n, m = map(int, input().split())
ice = []
for _ in range(n):
ice.append(list(map(int, input())))
# True의 개수만 셀 수 있게 만들어준다.
def dfs(x, y):
if x < 0 or y < 0 or x>=n or y>= m:
return False
if ice[x][y]==0:
ice[x][y] = 1
dfs(x-1, y)
dfs(x, y-1)
dfs(x+1, y)
dfs(x, y+1)
return True
return False
result = 0
for i in range(n):
for j in range(m):
if dfs(i, j) == True:
result+=1
print(result)
3. 코멘트
- map() list 변수 자리에 stirng을 넣게 되면 리스트로 취급되어 쪼개지게 된다.
- 구현 등에도 사용이 가능할 것으로 생각된다. (원소들이 붙어있는 경우 하나로 생각해야 될 경우(?))