이코테 dfs/bfs 공부하면서 책에 나온 문제들은 어려워서 백준에 난이도 낮은 문제를 풀어봤다.
처음에 (y== m-1 or graph[x][y+1] == '-') 이 부분을 (graph[x][y+1] == '-' or y== m-1)로 썼는데 indexerror가 계속 떴다. 에러 부분을 읽어봐도 원인을 못찾다가 혹시나 하는 마음에 바꿔보았더니 잘되었다.
or 의 순서도 신경써야한다는 걸 배웠다.
n,m = map(int, input().split())
graph = []
for _ in range(n):
graph.append(list(input()))
visited = []
for _ in range(n):
visited.append([False]*m)
def dfs(x,y):
if x <=-1 or x>=n or y<=-1 or y>=m:
return False
if visited[x][y] == False:
visited[x][y] = True
if graph[x][y] == '-' and (y== m-1 or graph[x][y+1] == '-'):
dfs(x,y+1)
elif graph[x][y] =='|' and (x == n-1 or graph[x+1][y] == '|'):
dfs(x+1,y)
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)
'공부 > 전반적인 프로그래밍' 카테고리의 다른 글
파이썬 자료구조 - 트리:레벨 (0) | 2022.05.02 |
---|---|
파이썬 자료구조 - 트리 : 높이 (0) | 2022.05.01 |
파이썬 자료구조 -트리 : 전위, 중위, 후위 순회 (0) | 2022.04.30 |
파이썬 자료구조 - Tree (0) | 2022.04.29 |
html 기초 공부 내용 모음 (0) | 2021.12.20 |