16958. 텔레포트

·2025년 11월 4일

백준 알고리즘

목록 보기
297/343

문제 해결 전략

  • 문제를 읽어보면, s가 1인 두 개의 지점끼리는 텔레포트를 할 수 있다고 한다.

  • 즉 맨해튼 거리로 diff를 구하지 않더라도 텔레포트를 사용 할 수 있다는 건데...

  • A->B로 간다고 하자. 그런데
    : 마지막 입력값 4->2로 가는 DIFF는 맨해튼 거리로 8이 나와야 하는데, 7이 나왔다. 즉 경유하는 지점이 있다는 것이고,

문제 해결 전략
A -> 경유지점 -> B로 간다는 것인데
A 와 경유 지점의 S가 1이면 텔레포트 사용가능하고,
B 와 경유 지점의 S가 1이면 텔레포트 사용가능하다는 것을 표현하면 된다.


코드

  • 경유하는 값을 통해 최소값을 구하는 것이므로, 플로이드 워셜을 사용해야 겠다!

  • 그 전에 5개의 입력값에 따른 최소값을 구하는 건데

핵심.

  • 1에서 2로 갈때만 구하는 것이 아니라, 중간에 경유하는 지점을 계산해야 한다. 그래서 이중 FOR문을 작성해서
    => S == 1 인 거 2개의 정점 처리하는 코드가 반드시 필요다하.

  • 문제에서 제시된것만 구하지 말고, 각 쌍정점에 대한 거리를 구함.

profile
🔥🔥🔥

0개의 댓글