[C언어] 2805. 나무 자르기

SW 업무 관련/백준

[C언어] 2805. 나무 자르기

WillBe_ 2019. 6. 5. 00:05

 

오~~랜만에 문제를 풀기 시작했다.

 

요즘 알고리즘을 배우기 시작했는데....나의 머리가 나쁘다는 것을 다시금 느끼고 있다.

 

 

 

2805 나무 자르기는 '이진 탐색'을 이용해야지!!!만 떠올리면 바로 풀리는 문제이다.

 

아마도..그렇다.

 

나무의 높이를 범위로 해서 가져가려는 나무의 길이를 만족하는 절단기의 최대 높이를 구하면 된다.

이분 탐색을 구분 짖는 기준은 범위의 중간 값 M과 절단기의 높이 이다.

 

이분 탐색에서 가장 중요한 것은 탐색 범위를 바꾸어주는 것이다.

여기서 현재 구한 절단기의 최대 높이가 중간 값 M보다 작을 경우는 탐색을 해서는 안 되는 구간이다. 왜냐하면 우리는 절단기의 최대 높이를 구하야 하기 때문!!

그래서 현재 구한 최대 높이가 M보다 같거나 클 경우 탐색의 시작 범위 s를 바꾸어준다.