반응형
https://www.acmicpc.net/problem/16401
import java.util.Arrays;
import java.util.Scanner;
// 16401 과자 나눠주기
public class Main {
static int M, N, result;
static int[] arr;
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
M = sc.nextInt();
N = sc.nextInt();
arr = new int[N];
for(int i=0; i<N; i++) arr[i] = sc.nextInt();
Arrays.sort(arr);
bs(1, arr[N-1]);
System.out.println(result);
}
public static void bs(int s, int e) {
if(s > e) return;
int mid = (s+e)/2;
int cnt = 0;
for(int i=0; i<N; i++) cnt += arr[i]/mid;
if(cnt >= M) {
if(result < mid) result = mid;
bs(mid+1, e);
} else {
bs(s, mid-1);
}
}
}
반응형
'알고리즘 > 문제풀이' 카테고리의 다른 글
[백준] 1987. 알파벳 (0) | 2020.07.10 |
---|---|
[백준] 3055. 탈출 (0) | 2020.06.30 |
[프로그래머스] 프린터 (0) | 2020.05.04 |
[SWEA] 1251. [S/W 문제해결 응용] 4일차 - 하나로 (0) | 2020.04.16 |
[SWEA] 9760. Poker Game (2) | 2020.04.03 |