Skip to content

Conversation

@oncsr
Copy link
Contributor

@oncsr oncsr commented Feb 26, 2025

🧷 문제 링크

https://www.acmicpc.net/problem/17399

🧭 풀이 시간

50분

👀 체감 난이도

✏️ 문제 설명

  • 트리에서 어떤 세 점에 대한 외심을 구해보자.
  • 외심 = 세 점과의 거리가 모두 같으면서, 그 거리를 최소로 하는 점. 없으면 -1

🔍 풀이 방법

[사용한 알고리즘]

  • 최소 공통 조상

  1. 문제에서도 나와있지만 만약 트리의 외심이 존재하면 유일하다.
  2. 외심이 존재한다면, 거리를 최소로 해야 한다.
  • 위 두 가지 성질 때문에, 트리의 외심은 반드시 a와 b의 중점, b와 c의 중점, c와 a의 중점 중 한 곳이다.
  • 세 가지 경우 각각에서, 선택한 중점과 a, b, c와의 거리가 모두 같다면 그 점이 외심이 된다.
  • 중점과 거리를 로그의 시간에 구하기 위해 희소 배열을 사용했다.

⏳ 회고

  • 희소 배열을 잘못 구성해서 계속 틀렸었는데, 희소 배열 생성하는 부분을 따로 함수로 만들어놔서 금방 찾을 수 있었다

@oncsr oncsr changed the title [20250225] BOJ / P2 / 트리의 외심 / 권혁준 [20250226] BOJ / P2 / 트리의 외심 / 권혁준 Feb 26, 2025
@ShinHeeEul ShinHeeEul merged commit a8c1a2e into main Feb 26, 2025
1 check passed
@oncsr oncsr added the success 👍 해설을 보지 않고 풀었을 때 label Feb 26, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

success 👍 해설을 보지 않고 풀었을 때

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants