목차
1. 최소 공통 조상 (LCA)
2. LCA 응용 - 빠르게 구하기
출처
Do it! 알고리즘 코딩테스트 with Python
1. 최소 공통 조상 (LCA)
트리 그래프에서 임의의 두 노드를 선택했을 때 두 노드가 각각 자신을 포함해 거슬러 올라가면서 부모 노드를 탐색할 때 처음 공통으로 만나게 되는 부모 노드
일반적인 최소 공통 조상 구하기 : 트리의 높이가 크지 않을 때 (시간제한의 제약이 없을 때)
2. LCA 응용 - 빠르게 구하기
일반적인 LCA는 한칸씩 노드를 올려가면서 확인했지만 빠르게 구하기는 2^k 씩 올라가 비교한다.
따라서 기존에 자신의 부모노드만 저장해 높던 방식에서 2^k번째 위치의 부모 노드까지 저장.
부모 노드 배열의 정의 : k[K][N] = N번 노드의 2^k 번째 부모의 노드 번호
부모 노드 배열의 점화식 : P[K][N] = P[K-1][P[K-1][N]]
'파이썬 코딩테스트' 카테고리의 다른 글
알고리즘 스터디 21일차 (2) | 2023.09.04 |
---|---|
알고리즘 스터디 20일차 (0) | 2023.09.03 |
알고리즘 스터디 18일차 (0) | 2023.09.01 |
알고리즘 스터디 17일차 (0) | 2023.08.31 |
알고리즘 스터디 16일차 (0) | 2023.08.29 |