Leta Learns

[모각코] 210714 Today I Learned 본문

HUFS/HUFS 모각코 캠프

[모각코] 210714 Today I Learned

leta 2021. 7. 14. 23:02

<백준 2178번 - 미로 탐색>

분명 과제에서 했던 문제인데, 진짜 조금만 바꿔주면 되는데 왜 이것도 어려운지.. ㅋㅋ

그래도 다 풀었다....!

이건 좀 이따 문제풀이 카테고리에 따로 쓸 거라서 나중에 링크 올려놔야겠다.

2021.07.14 - [Coding/백준] - [Python] 백준 2178번 - 미로 탐색

 

 

 

<백준 1240번 - 노드 사이의 거리>

원래 한 문제 풀려고 했는데 생각보다 금방 풀어서 며칠 전에 풀다가 잠시 미뤄둔 1240번을 시도했다.

... 시도만 했다.

w에 넣는 값을 확인한 후 그거에 맞춰서 코드를 수정했는데 이상한 에러가 났다.

 

Fatal Python error: _Py_CheckRecursiveCall: Cannot recover from stack overflow

 

라는 에러인데 구글링해보니 영어 밖에 안 나와서 아직 제대로 확인 안 해봤다. ㅋㅋ

재귀하는 과정에서 문제가 생긴 것 같은데.. 뭘까..............

import sys
def dfs(v, g): #v: 시작정점 g:목표정점
    global d, visited
    d = 0 #구할 거리
    visited[v-1] = 0 #해당노드에서 해당노드까지의 거리 0
    for i in range(len(adjList[v-1])): 
        w = adjList[v-1][0]
        if not visited[w[0]-1]:
            dfs(w[0], g)
        d += adjList[v-1][1]
        if w[0] == g:
            visited = [0]*n #[0 for j in range(n)]
            break

n, m = map(int, sys.stdin.readline().split())
adjList = [[] for i in range(n)]
visited = [0]*n #[0 for i in range(n)] #0:False, 1:True

for i in range(n-1):
    a, b, c = map(int, sys.stdin.readline().split())
    adjList[a-1].append((b, c))
    adjList[b-1].append((a, c))

for j in range(m):
    a, b = map(int, sys.stdin.readline().split())
    dfs(a, b)
    print(d)
Comments