728x90
반응형
# 오늘의 문제
음료수 얼려 먹기
난이도 중 | 풀이시간 30분 | 시간 제한 1초 | 메모리 제한 128m
# 나의 코드
재귀함수란 개념이 낯설어서 아직은 제대로 코드 현이 되지 않아 많은 참고를 받은후에 코드를 구현했다.
n,m = map(int, input().split())
graph = []
for i in range(n):
graph.append(list(map(int, input())))
cnt = 0
def dfs(x,y):
if x< -1 or y < -1 or x >= n or y >= m :
return False
if graph[x][y] == 0:
graph[x][y] = 1
#좌로 재귀함수
dfs(x+1,y)
#우로 재귀함수
dfs(x-1,y)
#상으로 재귀함수
dfs(x,y+1)
#하로 재귀함수
dfs(x,y-1)
return True
return False
for i in range(n):
for j in range(m):
if dfs(i,j) == True:
cnt += 1
print(cnt)
# 정답과의 비교
1. 탐색이라는 알고리즘을 구현할때 DFS든 BFS든 재귀함수를 머리속에서 그려서 함수를 구현하는 컴퓨터적인 사고가 아직은 낯설어서 부족한 것 같다. 많은 문제를 접해서 경험치를 쌓아야함을 느꼈다.
n,m = map(int, input().split())
graph = []
for i in range(n):
graph.append(list(map(int, input())))
def dfs(x,y):
if x< -1 or y < -1 or x >= n or y >= m :
return False
if graph[x][y] == 0:
graph[x][y] = 1
dfs(x+1,y)
dfs(x,y+1)
dfs(x-1,y)
dfs(x,y-1)
return True
return False
resunt = 0
for i in range(n):
for j in range(m):
if dfs(i,j) == True:
resunt += 1
print(resunt)
728x90
'프로그래밍 회고록 > Python' 카테고리의 다른 글
2021.11.25 코테_삽입 정렬 연습 (0) | 2021.11.25 |
---|---|
2021.11.22 코테_선택 정렬 연습 (0) | 2021.11.22 |
2021.11.13 코테_BFS 예시코드 (0) | 2021.11.13 |
2021.11.13 코테_DFS 예시코드 (0) | 2021.11.13 |
2021.10.27 코테_게임 개발 (0) | 2021.10.27 |