정구리의 우주정복
4871. [파이썬 S/W 문제해결 기본] 4일차 - 그래프 경로 본문
반응형
DFS를 이용한 풀이
graph에 각 노드의 간선에 대한 노드들을 넣어주고
전체 visit의 값에 True 를 넣고 한번 방문한 적이 있으면 False를 넣어준다
그리고 간선에 대한 노드가 True 값이면 다시 함수를 호출해 False 로 바꿔준다
맨 마지막에 도착노드값이 True(방문한 적이 없음) 면 result =0 으로 해주고 그 밖에는 result = 1
def dfs(s):
visit[s] = False
for i in graph[s]:
if visit[i] == True:
dfs(i)
testCase = int(input())
for i in range(testCase):
v,e = map(int,input().split())
graph = [[] for _ in range(v+1)]
visit = [True for _ in range(v+1)] #방문여부 확인
for j in range(e):
a,b = map(int,input().split())
graph[a].append(b) #각 노드별 간선들을 추가
s,g = map(int,input().split()) #출발노드와 도착노드
dfs(s)
result = 1
if visit[g]==True:
result = 0
print('#'+str(i+1)+' '+str(result))
계속 런타임 에러가 나서 왜인가 했더니 split(' ') 을 하면 안되는거였다 ! split() 을 해야지 해결이 됨 왜지 ..?
dfs랑 dp 문제들이 너무 어려워서 많이 풀어보는게 중요할듯 !
반응형
'ALGORITHM > SOLVE' 카테고리의 다른 글
4874. [파이썬 S/W 문제해결 기본] 5일차 - Forth (2) | 2020.05.18 |
---|---|
4873. [파이썬 S/W 문제해결 기본] 4일차 - 반복문자 지우기 (0) | 2020.05.18 |
4866. [파이썬 S/W 문제해결 기본] 4일차 - 괄호검사 (0) | 2020.05.17 |
[BOJ] 백준 2748 피보나치 수 2 , 백준 1003 피보나치 함수 파이썬 풀이 (0) | 2020.05.16 |
4869. [파이썬 S/W 문제해결 기본] 4일차 - 종이붙이기 (2) | 2020.05.15 |
Comments