1seul357

[SWEA] 최소 이동 거리 본문

알고리즘/SWEA

[SWEA] 최소 이동 거리

1seul 2021. 11. 28. 16:03
T = int(input())
for TC in range(T):
    N, E = map(int, input().split())
    check = [999999]*(N+1)
    arr = [[0]*(N+1) for _ in range(N+1)]
    check[0] = 0   # 출발점은 항상 0

    for i in range(E):   # E만큼 입력받기
        s, e, w = map(int, input().split())
        arr[s][e] = w    # 2차원 리스트 사용, w비용 넣기

    for i in range(N+1):
        for j in range(N+1):
            if arr[i][j] != 0:   # 경로가 있다면
                if check[j] > arr[i][j] + check[i]:   # 지금 경로가 다음 경로에 저장된 값보다 작다면
                    check[j] = arr[i][j] + check[i]   # 갱신

    print('#{} {}'.format(TC+1, check[N]))

'알고리즘 > SWEA' 카테고리의 다른 글

[SWEA] 격자판의 숫자 이어붙이기  (0) 2021.11.28
[SWEA] 장훈이의 높은 선반  (0) 2021.11.28
[SWEA] 정사각형 방  (0) 2021.11.28
[SWEA] 그룹 나누기  (0) 2021.11.28
[SWEA] 이진 탐색  (0) 2021.11.28