편집 기록

편집 기록
  • 프로필 nowp님의 편집
    날짜2021.06.08

    파이썬 플로이드 워셜 최단경로에 대해 질문 드립니다


    처음으로 이 사이트를 써봅니다 다름이 아니라 공부를 하는중 최단 시간은 구할수 있지만 경로를 구하지 못해서 질문 드립니다 이미지 이미지

    INF=int(1e9)
    def print_d(x=0):
        if x:
            print(f'=[{n+1}]노드 거쳐간 후 최단거리=')
        else:
            print('=탐색전 초기값=')
        for i in range(len(d)):
            for j in range(len(d)):
                if d[i][j]==INF:
                    print(' ∞', end=' ')
                else:
                    print(f'{d[i][j]:2}', end=' ')
            print()
    
    
    node=int(input('노드 개수 입력:'))
    d=[[INF]*node for i in range(node)]
    
    
    for i in range(node):
        for j in range(node):
            if i == j:
                d[i][j] = 0
            else:
                line = int(input(f'{i+1}→{j+1}의 거리 입력(없으면 0):'))
                if line:
                    d[i][j] = line
    
    print_d()
    

    이미지

    재 위의 코딩을 아래의 최단 경로 처럼 표현할려면 어떻게 해야하는지 제발 알려주세요.

  • 프로필 알 수 없는 사용자님의 편집
    날짜2021.06.07

    파이썬 플로이드 워셜 최단경로에 대해 질문 드립니다


    처음으로 이 사이트를 써봅니다 다름이 아니라 공부를 하는중 최단 시간은 구할수 있지만 경로를 구하지 못해서 질문 드립니다 이미지 이미지 INF=int(1e9) def print_d(x=0): if x: print(f'=[{n+1}]노드 거쳐간 후 최단거리=') else: print('=탐색전 초기값=') for i in range(len(d)): for j in range(len(d)): if d[i][j]==INF: print(' ∞', end=' ') else: print(f'{d[i][j]:2}', end=' ') print()

    node=int(input('노드 개수 입력:')) d=[[INF]*node for i in range(node)]

    for i in range(node): for j in range(node): if i == j: d[i][j] = 0 else: line = int(input(f'{i+1}→{j+1}의 거리 입력(없으면 0):')) if line: d[i][j] = line

    print_d()

    이미지

    재 위의 코딩을 아래의 최단 경로 처럼 표현할려면 어떻게 해야하는지 제발 알려주세요.