📎 문제링크
https://leetcode.com/problems/find-if-path-exists-in-graph/submissions/1287047223/
🤔 문제 이해 및 알고리즘 유형
알고리즘 유형
DFS
💻 틀린 코드
class Solution:
def validPath(self, n: int, edges: List[List[int]], source: int, destination: int) -> bool:
edge_list=[[] for _ in range(n)]
visited=[False]*(n+1)
def dfs(start,visited):
if start==destination:
return True
visited[start]=True
for e in edge_list[start]:
if visited[e]==False:
dfs(e,visited)
for edge in edges:
edge_list[edge[0]].append(edge[1])
edge_list[edge[1]].append(edge[0])
if dfs(source,visited)==True:
return True
else:
return False
👍 해결한 코드
class Solution:
def validPath(self, n: int, edges: List[List[int]], source: int, destination: int) -> bool:
edge_list = [[] for _ in range(n)]
for edge in edges:
edge_list[edge[0]].append(edge[1])
edge_list[edge[1]].append(edge[0])
visited = [False] * n
def dfs(start):
if start == destination:
return True
visited[start] = True
for e in edge_list[start]:
if not visited[e]:
if dfs(e):
return True
return False
return dfs(source)
✔ 생각해봐야 할 점
방법을 접근하는 것은 맞는데 DFS를 돌렸을 때 true 값이 나오면 return True를 해줘야 하는 것을 생각하지 못했다. 한번 더 생각하자.
'알고리즘 > Python 코테' 카테고리의 다른 글
99클럽 코테 스터디 13일차 TIL(그래프) (0) | 2024.06.13 |
---|---|
99클럽 코테 스터디 12일차 TIL(이분탐색) (0) | 2024.06.12 |
99클럽 코테 스터디 11일차 TIL(이분탐색) (0) | 2024.06.10 |
99클럽 코테 스터디 10일차 TIL(dp) (1) | 2024.06.09 |
99클럽 코테 스터디 9일차 TIL(dp) (1) | 2024.06.08 |