File tree Expand file tree Collapse file tree 1 file changed +43
-0
lines changed
weekly/week03/BOJ_1477_휴게소세우기 Expand file tree Collapse file tree 1 file changed +43
-0
lines changed Original file line number Diff line number Diff line change 1+ package week03 .BOJ_1477_휴게소세우기 ;
2+
3+ import java .util .*;
4+ import java .lang .*;
5+ import java .io .*;
6+
7+ class BOJ1477 {
8+ public static void main (String [] args ) throws IOException {
9+ BufferedReader br = new BufferedReader (new InputStreamReader (System .in ));
10+ StringTokenizer st = new StringTokenizer (br .readLine ());
11+ int N = Integer .parseInt (st .nextToken ());
12+ int M = Integer .parseInt (st .nextToken ());
13+ int L = Integer .parseInt (st .nextToken ());
14+
15+ int [] rests = new int [N + 2 ];
16+ rests [0 ] = 0 ;
17+ st = new StringTokenizer (br .readLine ());
18+ for (int i = 0 ; i < N ; i ++) {
19+ rests [i ] = Integer .parseInt (st .nextToken ());
20+ }
21+ rests [N + 1 ] = L ;
22+ Arrays .sort (rests ); //정렬
23+
24+ int left = 1 ;
25+ int right = L - 1 ;
26+
27+ while (left <= right ) {
28+ int mid = (left + right ) / 2 ;
29+ int sum = 0 ;
30+
31+ for (int i = 1 ; i < rests .length ; i ++) {
32+ sum += (rests [i ] - rests [i -1 ] - 1 ) / mid ;
33+ }
34+
35+ if (sum > M ) {
36+ left = mid + 1 ;
37+ } else {
38+ right = mid - 1 ;
39+ }
40+ }
41+ System .out .println (left );
42+ }
43+ }
You can’t perform that action at this time.
0 commit comments