백준 3584 - 가장 가까운 공통 조상 (Python)
최소 공통 조상 알고리즘을 사용하면 됩니다. 구하고자 하는 두 수의 각 부모 노드들을 찾아서 배열에 넣어준 다음 서로 다른 숫자가 나올 때 까지 cnt를 늘려가며 탐색하면 됩니다.
최소 공통 조상 알고리즘을 사용하면 됩니다. 구하고자 하는 두 수의 각 부모 노드들을 찾아서 배열에 넣어준 다음 서로 다른 숫자가 나올 때 까지 cnt를 늘려가며 탐색하면 됩니다.
sparse table을 활용하는 문제입니다. sparse table은 모든 계산값을 저장하는 것이 아니라 배로 늘어나는 값들만 저장시켜 계산하기 편하게 해주는 자료구조입니다.
이번 문제는 두팀 끼리 순서가 바뀐다 해도 다른 팀끼리의 순서는 변하지 않기 때문에 모든 연결을 표현해야합니다.
우선 순위가 있기 때문에 queue대신 heapq를 사용했습니다.
위상정렬 알고리즘을 사용하면 됩니다.