[BOJ] 백준 2805 나무 자르기 (JAVA)
Algorithm/- Baekjoon2023. 12. 29. 06:46[BOJ] 백준 2805 나무 자르기 (JAVA)

📑 문제🌱 아이디어입력되는 나무의 양(N)은 1 ≤ N ≤ 1,000,000, 즉 O(n^2)을 가지는 알고리즘이 아닌  O(N)또는 더 빠른 알고리즘을 사용해야 한다. 만약 M미터의 나무를 가져가기 위해서 1~1,000,000까지의 높이를 나이브하게 대입하면서 답을 구할 수 있지만,최악일 경우는 시간초과가 나게 된다. 즉 모든 경우를 대입하는 방식은 이 문제에서는 틀리다! 큰 범위에서 해당값을 하나를 구해야 한다, 이진탐색(Binary Search)을 통해서 해당값을 구할 수 있다. 가정을 해보자, 만약 1 ~ 7까지에서 6을 구해야 한다면 이진탐색은 이렇게 작동한다. 일단 이진탐색을 하기 위해선 최솟값, 중간값(mid), 최댓값을 구해야 한다.처음에는 중간값인 4를 탐색한다, 하지만 답인 "6"이..

반응형
image