백준 2805

나무자르기

(이분탐색)

풀이








이분탐색이라그래서

어제푼 문제 그대로 풀었더니

안되었다..


이 문제의 가장 우선적으로 중요한 점은

int가 아닌 long을 써야한다는 것이다.


입력이 2억까지인데.

int는 2의 32승으로 약 21억


하지만 합도 구해야하기때문에

long으로 해야한다.




그리고 주석에도 있지만

헷갈리는것은

등호 하나로 틀렸다.


비교하는 시작점~ 끝점을 

무조건 while 조건문에 시작점이 >끝점보다 작을때까지 

while조건문을 수행하도록 하였지만


그러면 시작점 = 끝점일 경우가 고려가 되지않아

틀렸다.



그리고 나무 크기를 자르는 것이 m의 값으로 딱

떨어지지 않을수도 있기때문에

m보다 클때의 값을 구해야한다.


그중에 가장 큰값.




기본적으로 이분탐색이기 때문에

lo와 hi를 두어야한다

(시작~끝)


그리고 중점을 잡아 비교해야한다.

중점이 곧 구하고자하는 값이다.



이 시작 / 끝을 정의를 잘하는 것도 필요한 것 같다.

저번문제에서는 인덱스로 정의하였지만

이번엔 나무의 길이로 정의하였다.







차근 차근 더 풀어보아야겠다


그럼

이만

뿅!



+ Recent posts