인프런 영문 브랜드 로고
인프런 영문 브랜드 로고

인프런 커뮤니티 질문&답변

카카누님의 프로필 이미지
카카누

작성한 질문수

Do it! 알고리즘 코딩테스트 with C++

LCA (응용 - 빠르게 구하기)

LCA 빠르게 찾기 - 트리의 높이에 따른 k값 질문

작성

·

42

0

이번 강의 3회차로 잘 보고 있습니다.

앞선 강좌 LCA 빠르게 찾기에서는 트리의 깊이는

2^K < (트리의 최대 높이)를 만족하는 K의 최대값이라고 하셨는데

실제 코딩 하실때는 아래 코드 처럼 작성하셨는데 최악인 편향 트리일때 과정하고 넉넉하게 K값을 구하는건 이해했습니다.

아래 코드에서는 N이 2^K > N 을 만족하는 최소 K값을 구하식으로 구하셨더라구요 이렇게 구해도 답은 나오는데 왜 이런지 몰라서 그런데 보충 설명 가능할까요?

// N의 트리가 편향 트리라고 간주
// 최악일 경우 KMax를 구한다.
int temp = 1;
KMax = 0;
while (temp <= N)
{
	temp <<= 1;
	KMax++;
}
// 2^k < N
// KMax - 1 하는게 맞지 않나?

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
카카누님의 프로필 이미지
카카누

작성한 질문수

질문하기