1260번_DFS와 BFS
문제 보러가기
🅰 코드
N,M,V=map(int,input().split())
matrix=[[0]*(N+1) for i in range(N+1)]
for i in range(M):
a,b = map(int,input().split())
matrix[a][b]=matrix[b][a]=1
visit_list=[0]*(N+1)
def dfs(V):
visit_list[V]=1
print(V, end=' ')
for i in range(1,N+1):
if(visit_list[i]==0 and matrix[V][i]==1):
dfs(i)
def bfs(V):
queue=[V]
visit_list[V]=0
while queue:
V=queue.pop(0)
print(V, end=' ')
for i in range(1, N+1):
if(visit_list[i]==1 and matrix[V][i]==1):
queue.append(i)
visit_list[i]=0
dfs(V)
print()
bfs(V)
✅ 후기
- 문제 자체는
SSAFY
교육에도 진행되었던 DFS
, BFS
의 가장 기본인 코드를 구현하는 것이었다. 그렇기에 어렵지는 않았지만, 궁극적인 목표는 어떤 문제에는 어떤 알고리즘으로 구현하는 것이 더 어울리는지 문제를 보고 바로 아는 것인것 같다. 그러므로 더욱 노력해야 할것 같다;;