[20251021] BOJ / P5 / 개코전쟁 / 이종환 #1183
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
🧷 문제 링크
https://www.acmicpc.net/problem/2325
🧭 풀이 시간
130분
👀 체감 난이도
✏️ 문제 설명
동물나라 지도에서 개미왕국은 1번 정점에 위치해 있고 코끼리왕국은 N번 정점에 위치해 있다. 따라서 개미왕국이 1번 정점에서 N번 정점으로 공격을 하러 가는 상황이다. (개미왕국은 최단거리로 이동을 하게 되고, 코끼리왕국은 움직이지 않는다)
“개미”와 “코끼리”의 앞 글자를 따서 이 전쟁은 “개코전쟁”으로 역사에 기억된다.
“앙두레 강”은 자신 때문에 발생한 이 전쟁을 어떻게든 막으려고 한다. 협상을 할 시간을 벌기 위해 개미왕국이 코끼리왕국에 도착하는 시간을 최대한 늦추려고 한다. 그래서 “앙두레 강”은 사자왕국의 도움을 빌어 도로 중 딱 하나를 파괴하려고 하는데 어느 도로를 파괴해야 개미왕국이 최단거리로 가더라도 그 거리를 최대로 할 수 있을까? (어떤 하나의 도로를 파괴하더라도 1번 정점에서 N번 정점으로 도달 가능하다)
적당한 도로하나를 파괴했을 때 1번 정점에서 N번 정점으로의 최단거리의 최댓값을 출력한다.
🔍 풀이 방법
다익스트라로 우선 1에서 N까지의 최단 거리를 구한다. 이때 단순히 거리만 구하는 것이 아니라,
어느 경로를 통해 진행하는 지도 기록한다.
이후, 최단 경로에 있는 모든 Edge에 대하여, 하나씩 안된다고 가정하고 다익스트라를 진행하였다. 이렇게 나온 각각의 결과 중 최댓값을 반환하였다.
사실 아직도 왜 맞혔는지 이해가 안간다.
일부로 O(V^2)의 다익스트라 방식을 사용하였고, 나름의 최적화를 했다 하긴 했다.
그래도 500 (1 to N 경로 최대 갯수) * 1000*500 (다익스트라) = 2억 5천만인데 패스..했다 신기하네
⏳ 회고