๐ ๋ฌธ์ ๋งํฌ
๐ ํ์ด ๊ณผ์
- ์ด๋ถํ์ ์ ํ์ ๋ฌธ์ ์
๋๋ค.
- ๋ฉ์๋๋ฅผ ๋ถ๋ฆฌํ๋ฉด, binarySearch() ๋ฉ์๋๋ ์ ์ ํ ๊ฑฐ๋ฆฌ ๊ธธ์ด๋ฅผ ๊ตฌํ๋ ๋ฉ์๋, canInstall() ๋ฉ์๋๋ ์ง์ ๊ฐ์๋ฅผ ์ธ๋ ๋ฉ์๋์
๋๋ค.
- binarySearch() ๋ฉ์๋ ๋ด๋ถ๋ฅผ ๋ณด๋ฉด, ์ด๋ถํ์์ ์๊ณ ๋ฆฌ์ฆ์ ์ ์ฉํฉ๋๋ค.
- ์
๋ ฅ๋ฐ์ c ๋ณ์์ ๋น๊ตํ์ฌ ๋ณ์ answer์ ๋ด์ ๋ฐํํฉ๋๋ค.
- canInstall() ๋ฉ์๋ ๋ด๋ถ๋ฅผ ๋ณด๊ฒ ์ต๋๋ค.
- count ๋ณ์๋ 1๋ก ์ด๊ธฐํ ํฉ๋๋ค. ๊ทธ ์ด์ ๋, ํด๋น ์ธ๋ฑ์ค์ ์ง์ ๊ณต์ ๊ธฐ๋ฅผ ์ค์นํ๋ค๊ณ ํ๋จํ๊ธฐ ๋๋ฌธ์
๋๋ค.
- ๋ง์ง๋ง์ผ๋ก ๊ณต์ ๊ธฐ ์ค์นํ ์ง์ ๋ํ ๋ณ์, ์ด์ ์ค์นํ ์ง์ ๋ํ ๋ณ์์ ๊ฑฐ๋ฆฌ ์ฐจ์ด๋ฅผ ํตํด dist ๋ณ์์ ๋น๊ตํ์ฌ count ๊ฐ์ ๋ณ๊ฒฝํฉ๋๋ค.
- ์ต์ข
์ ์ผ๋ก ๋ช ๊ฐ์ ์ง์ธ์ง ๋ฐํํฉ๋๋ค.
๐ป ์ฝ๋
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int[] arr;
static int n,c;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
n = Integer.parseInt(st.nextToken());
c = Integer.parseInt(st.nextToken());
arr = new int[n];
for (int i = 0; i < n; i++) {
arr[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(arr);
bw.write(binarySearch(1, arr[arr.length - 1]));
bw.flush();
bw.close();
br.close();
}
private static String binarySearch(int start, int end){
int answer = 0;
while(start <= end){
int mid = (start + end) / 2;
if(canInstall(mid) < c){
end = mid - 1;
}else{
answer = mid;
start = mid + 1;
}
}
return String.valueOf(answer);
}
private static int canInstall(int dist){
int count = 1; // ์์ ์ง์ ๋ฌด์กฐ๊ฑด ์ค์น
int lastInstall = arr[0];
for(int i = 1; i< arr.length; i++){
int toLocate = arr[i];
if(toLocate - lastInstall >= dist){
count += 1;
lastInstall = toLocate;
}
}
return count;
}
}
'Algorithm > ๋ฐฑ์ค' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
๋ฐฑ์ค 3184๋ฒ : ์ (Java) (0) | 2022.03.22 |
---|---|
๋ฐฑ์ค 4963๋ฒ : ์ฌ์ ๊ฐ์ (Java) (0) | 2022.03.22 |
๋ฐฑ์ค 15686๋ฒ : ์นํจ ๋ฐฐ๋ฌ (Java) (0) | 2022.03.22 |
๋ฐฑ์ค 16953๋ฒ : A -> B (Java) (0) | 2022.03.22 |
๋ฐฑ์ค 1991๋ฒ : ํธ๋ฆฌ ์ํ (Java) (0) | 2022.02.12 |