[Algorithm/Python][백준] 1260번 DFS와 BFS

동글이·2022년 9월 6일
0

Algorithm

목록 보기
23/33

[BOJ] 1260번 DFS와 BFS

https://www.acmicpc.net/problem/1260

- 문제 접근

  • DFS와 BFS의 정석 문제
  • 얘를 기반으로 앞으로의 문제도 풀어나가야 겠다
  • 앞에 이코테 강의 정리하면서 푼 예제 문제랑은 다르게 그래프를 행렬로 만들어서 풀었는데 이 방법이 더 나은 것 같다!🔥

- 내 코드

from collections import deque

def dfs(graph, V, visited):
    visited[V]=True
    print(V, end = ' ')
    for i in range(len(graph[V])):
        if visited[i]==False and graph[V][i]==1:
            dfs(graph, i, visited)
            
def bfs(graph, start, visited):
    queue = deque([start])
    visited[start]=True
    while queue:
        v = queue.popleft()
        print(v, end = ' ')
        for i in range(len(graph[v])):
            if visited[i]==False and graph[v][i]==1:
                queue.append(i)
                visited[i]=True
        

N, M, V = map(int, input().split())

graph = [[0 for col in range(N+1)] for row in range(N+1)]

for i in range(M):
    a, b = map(int, input().split())
    graph[a][b]=1
    graph[b][a]=1

visited = [False]*(N+1)
visited[0] = True

dfs(graph, V, visited)
print()

visited = [False]*(N+1)
visited[0] = True

bfs(graph, V, visited)
profile
기죽지 않는 개발자

0개의 댓글