[백준] 구간 나누기2 13397

유시준·2022년 4월 15일
0

algorithm

목록 보기
16/21

문제풀이

n개의 숫자를 m개의 연속된 구간으로 쪼개어 각 구간의 최댓값과 최솟값의 차이(이하 가중치)를 최소로 만드는 문제이다.
파라매트릭 서치를 이용해서 문제해결이 가능하다.
mid를 가중치로 정의하고 n개의 숫자를 순회하면 된다.
list를 순회하며 현재 구간의 가중치가 mid보다 작다면 구간의 크기를 늘려가면 된다. 만약 mid보다 크다면 구간을 초기화 하여 cnt를 늘려주는 식으로 이분탐색을 진행하면 된다.
최종적으로 cnt의 크기를 m과 비교하여 탐색범위를 좁혀나간다.

코드

solution

문제링크

boj/13397

profile
금꽁치's Blog

0개의 댓글