11562. 백양로 브레이크_아이디어

·2025년 8월 24일
0

백준 알고리즘

목록 보기
222/272

문제해결 전략

: 플로이드 워셜 + 아이디어...

  • 문제에서 단방향인 경우, 양방향으로 만들 수 있도록 카운팅해야 한다고 한다.

핵심!

-> 즉 이미 일반 통행인 길의 경우에만 양방향으로 바꿀수 있는 기회가 주어지는 것이다.

  • 우리는 경유지를 통해 모든 정점간의 distT를 구하고 있는 것이므로 플로이드워셜로 진행한다.
  • 단방향으로 되어 있는 만약 u->v로 간다고 하면,
    역으로 v->u로 가는 distT을 1로 하면 된다. 설치 비용이라고 생각하면 된다.
    -> k경유지를 거쳐서 진행하면 알아서 갱신된다.

생각해보기

  • 아이디어를 만드는 것이 어렵다.
    : 맨 처음에는 distT 만들고, 백트래킹하려고 했는데 굉장히 복잡해질 것이다....
  • 양방향인 경우는 distT 값은 0이다.

  • 1에서 2로 가는 길이 단방향인 경우 ,
    2에서 1로 가는 경로를 만들어야 한다.
    -> 2개의 정점을 가지고 진행하는 플로이드 워셜이므로 비용을 1로 한다.

  • 아래의 입출력을 보면, 2-3-1 즉 양방향이기 때문에
    distT[2][3] 과 distT[3][2] 는 0이다.
    -> 출력문을 통해서도 확인 가능하다.

profile
🔥🔥🔥

0개의 댓글