SWEA

SWEA 1238. Contact [Python]

Hoo_Dev 2022. 3. 24. 23:40
def bfs(s):
    queue = [s]
    visited[s] = 0
    while queue:
        x = queue.pop(0)
        for i in graph[x]:
            if visited[i] == 0:
                visited[i] = visited[x] + 1
                queue.append(i)
                
T = 10
for tc in range(1, T + 1):
    N, S = map(int, input().split())
    arr = list(map(int, input().split()))
    visited = [0] * 101
    graph = [[] for _ in range(101)]

    for i in range(0, N, 2):
        graph[arr[i]].append(arr[i+1])

    bfs(S)
    a = max(visited)
    max_n = 0
    for i in range(len(graph)):
        if visited[i] == a and max_n < i:
            max_n = i
    print('#{} {}'.format(tc, max_n))

인접리스트로 표현한 뒤 최종 도착 노드의 방문지점 값을 max로 꺼내온 후 순회를 통해 결과 출력