[BOJ][Python]DFSとBFS#1260



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

📌に答える


私が書いた解答(成功)

  • を各頂点に接続する頂点リストをディックシーケンス番号
  • として実装する.
  • 句読点番号はトランペットから検索を開始し、各リストを
  • に並べ替えます.
  • dfs,bfsは
  • を行う
    from collections import deque
    
    n, m, v = map(int, input().split())
    connected = {i: [] for i in range(1, n + 1)}
    for _ in range(m):
        n1, n2 = map(int, input().split())
        connected[n1].append(n2)
        connected[n2].append(n1)
    
    for n in range(1, n+1):
        connected[n].sort()
    
    
    def bfs(v):
        res = []
        visited = [0] * n
        dq = deque()
        dq.append(v)
        while dq:
            now = dq.popleft()
            res.append(now)
            visited[now - 1] = 1
            for node in connected[now]:
                if not visited[node - 1] and node not in dq:
                    dq.append(node)
        return res
    
    
    def dfs(v, visited=[]):
        visited.append(v)
        for node in connected[v]:
            if node not in visited:
                dfs(node, visited)
        return visited
    
    
    print(*dfs(v))
    print(*bfs(v))

    📌ポスト


    Djangoを学ぶためにアルゴリズム感が消えてしまいました...もっと問題をやらなければならない.