inseonyun / Algorithm

알고리즘 문제 풀이
0 stars 0 forks source link

[Floyd-warshall] 백준 : 1956_운동 #26

Closed inseonyun closed 2 years ago

inseonyun commented 2 years ago

Source URL : https://www.acmicpc.net/problem/1956

inseonyun commented 2 years ago

문제 요구사항

접근 방법

풀이 순서

  1. V와 E 값을 입력 받는다
  2. 전역 변수로 선언해둔 map[402][402]를 V 크기만큼 INF(987654321) 값으로 초기화 한다.
  3. E의 크기만큼 반복하여, a(출발 정점), b(도착 정점), c(가중치) 값을 입력 받아 map[a][b] = c로 값을 저장한다.
  4. 3개의 반복문을 사용한다.
    • k는 거쳐가는 정점을 의미 한다.
    • i는 출발 정점을 의미 한다.
    • j는 도착 정점을 의미 한다.
    • map[i][j] ( i 출발 j 도착) 값이 map[i][k] + map[k][j] (i출발 k를 거쳐 j로 도착) 값보다 크면 map [i][j]값을 갱신해준다.
  5. V 크기만큼 반복하여 map[i][i](i에서 출발하여 i에 도착)값이 result(초기값 INF)보다 작으면 result 값을 갱신 해준다.
  6. result 값 출력, 만약 result 값이 INF라면 -1 출력
inseonyun commented 2 years ago

[문제 풀이 결과]

image