https://www.acmicpc.net/problem/13397
이분탐색으로 접근했다.
풀이 방법
배열의 크기 N이 최대 5000으로 작은 값에 속한다. 따라서 이분탐색으로 찾게 될 값은 구간의 최대 점수를 찾는 문제로 접근했다.
즉 이분탐색으로 mid값을 고정하고 길이 N의 배열을 순차탐색하면서 탐색 중인 구간의 최댓값 - 최솟값이 mid보다 크다면 구간을 나누어 마지막까지 탐색이 끝났을 때 구간의 개수가 M이하라면 최대 점수를 더 낮은 쪽을 탐색, 개수가 M보다 크다면 최대 점수가 더 큰 쪽으로 이분 탐색을 이어가면 된다.
입력 예제를 기준으로 동작을 그림으로 나타내면 다음과 같다. 이분탐색 mid 값이 3, 5, 4 일 경우 각각의 구간의 개수 조건을 확인. 구간의 최댓값이 5일 경우에 조건을 만족하므로 5가 정답이 된다.
정답 코드
'Problem Solving > BOJ' 카테고리의 다른 글
[17090] 미로 탈출하기 (0) | 2024.04.24 |
---|---|
[14923] 미로 탈출 (0) | 2024.04.21 |
[8983] 사냥꾼 (0) | 2024.02.19 |
[17471] 게리멘더링 (0) | 2024.02.06 |
[1700] 멀티탭 스케줄링 (0) | 2024.01.30 |