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

이선용님의 프로필 이미지
이선용

작성한 질문수

10주완성 C++ 코딩테스트 | 알고리즘 코딩테스트

6주차 개념 #1. 이분탐색(Binary Search)

6-개념강의 2792번 질문있습니다

작성

·

268

0

http://boj.kr/ecb460dd765d43ae81d5747be4e066d2

이분탐색이 전체에서 /2단위로 줄여서 루트2단위로 줄어들어 시간복잡도를 줄이려는 탐색방법인것까지는 이해가 가는데 mid를 지정해놓고 mid-1, mid+1 mid 이부분을 l, r, 각각 지정하는부분이 문제마다 헷갈려서 잘 이해가 안가네요 ㅜㅜ
예전에도 비슷한문제로 머리가아팠던거같은데 설명해주시면감사하겠습니다

답변 1

0

큰돌님의 프로필 이미지
큰돌
지식공유자

안녕하세요 선용님 ㅎㅎ

		if (count <= N)
			right = mid - 1;
		else
			left = mid + 1;

mid - 1 : hi를 반 - 1로 설정, 범위를 | ---- | ---- | 로 만든다.

mid + 1 : lo를 반 -+1로 줄여서 범위를 | ---- | ---- | 로 만든다.

 

입니다. 전체 범위가 반씩 쪼개져서 구성된다고 생각하시면 쉽습니다.

 

또 질문 있으시면 언제든지 질문 부탁드립니다.

좋은 수강평과 별점 5점은 제게 큰 힘이 됩니다. :)

감사합니다.

강사 큰돌 올림.

이선용님의 프로필 이미지
이선용

작성한 질문수

질문하기