Notice
Recent Posts
Recent Comments
:: ADVANCE ::
[BaekJoon][2613] 숫자구슬 본문
반응형
BAEKJOON ONLINE JUDGE
한국정보올림피아드 시.도 지역본선 2004
https://www.acmicpc.net/problem/2613
최대값의 최소값이라는 말을 보고 이진탐색이라고는 생각하였지만 처음에는 DP로 접근해 보았다.
DP로도 풀이가 생각났기 때문에..
dp[start][group] : start 지점부터 끝까지 group의 개수만큼 나누었을 때 그 합 중 최대값의 최소값을 저장
그룹 하나, sum값과 그 외의 구간을 group - 1개로 나누었을 때 나오는 최소값 중 최대값들 중에서 최소값을 저장해 나갔다.
그리고 저장해 나가면서 그 최소값이 되는 구간의 구슬 개수 또한 저장해 나갔다.
sum 값은 입력을 받으면서 이중 반복문으로 sum[start][end]에 미리 저장
시간은 4ms
2. Binary Search
아무튼 이 문제는 최대값의 최소값을 찾는 문제로 Binary Search !!
정답이 될 값을 이진 탐색으로 찾아들어가며, 질답은 최대값이 middle 일 때 나눈 구간의 개수가 m보다 크면 left = middle + 1 부터, 나눈 구간의 개수가 m 이하이면 right = middle - 1로 답이 될 수 있는 구간 이동.
이 때, m으로 나눌 수 있을 때의 middle (정답 후보) 중 최소값이 최종 정답이다.
구슬의 개수는 질답할 때 구간 나누듯이 마지막에 한 번 더 출력
시간은 0ms
반응형
'Algorithm > Binary Search' 카테고리의 다른 글
[BaekJoon][2512] 예산 (0) | 2016.10.01 |
---|---|
[BaekJoon][1920] 수 찾기 (1) | 2016.09.27 |
[BaekJoon][2110] 공유기 설치 (0) | 2016.06.26 |
[BaekJoon][2805] 나무 자르기 (0) | 2016.06.26 |
[BaekJoon][1654] 랜선 자르기 (0) | 2016.06.26 |
Comments