ํฐ์คํ ๋ฆฌ ๋ทฐ
https://www.acmicpc.net/problem/2110
[๋ฌธ์ ]
[ํ์ด]
0๋ฒ์งธ์ง ~ N-1๋ฒ์งธ ์ง๊น์ง ์ด๋ถํ์์ ํตํด interval ๊ฐ์ ์ด์ฉํด ๊ณต์ ๊ธฐ๋ฅผ ์ค์นํ ์ ์๋์ง ํ์ธํ๋ฉฐ interval๊ฐ์ ๊ฐฑ์ ํฉ๋๋ค.
๋ง์ฝ ์ง์ ๋ฒํธ๋ค์ด 1 2 8 4 9 ์ด๊ณ ๊ณต์ ๊ธฐ๋ 3๊ฐ๋ฉด, ์ต๋๊ฐ์ (9-1) / 2 = 4์ ๋๋ค. ๋ง์ฝ 1~9๊ฐ ๋ชจ๋ ์ฑ์์ ธ ์๋ค๊ณ ์๊ฐํ๋ฉด
1 5 9๋ฅผ ์ ํํ ์ ์๊ธฐ ๋๋ฌธ์ ๋๋ค.
- home[] ์ N๊ฐ์ ์ง ์์น๋ฅผ ์ ์ฅํฉ๋๋ค.
- ๊ณต์ ๊ธฐ ์ค์น ๊ฐ๊ฒฉ interval์ ์ต์๊ฐ๊ณผ ์ต๋๊ฐ์ ๊ตฌํ์ฌ left, right์ ์ ์ฅํฉ๋๋ค.
- ์ต์๊ฐ 1์ left์ ์ ์ฅํฉ๋๋ค.
- ์ต๋๊ฐ์ (home[N-1] - home[0]) / (C-1) ์ผ๋ก ๊ตฌํ์ฌ right์ ์ ์ฅํฉ๋๋ค.
- left์ right์ ์ค๊ฐ๊ฐ mid๋ฅผ interval๋ก ์ค์ ํ์ฌ wifi(mid)๋ฅผ ํตํด ํด๋น ๊ฐ์ ์ค์น ๊ฐ๋ฅ ์ฌ๋ถ๋ฅผ ํ์ํ์ฌ, ์ค์นํ ์ ์๋ค๋ฉด left++ํ๊ณ ์๋ค๋ฉด right--๋ฅผ ํตํด mid๊ฐ์ ๊ฐฑ์ ํด๊ฐ๋ฉฐ ํ์ํฉ๋๋ค.
[์ฝ๋]
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
static int N;
static int C;
static int home[];
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
N = Integer.parseInt(st.nextToken());
C = Integer.parseInt(st.nextToken());
home = new int[N];
for(int i=0;i<N;i++) {
home[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(home);
int start = home[0];
int end = home[N-1];
int left = 1;
int right = (end - start)/(C-1);
while(left <= right) {
int mid = (left + right)/2;
boolean find = wifi(mid);
if(find) {
left = mid + 1;
} else {
right = mid - 1;
}
}
System.out.println(right);
}
public static boolean wifi(int interval) {
int cnt = 1;
int index = 0;
int now = home[0] + interval;
while(cnt < C) {
if(now > home[N-1]) {
break;
}
for(int i=index + 1;i < N;i++) {
if(home[i] >= now) {
cnt++;
now = home[i] + interval;
index = i;
}
if(cnt == C) {
return true;
}
}
}
if(cnt == C) {
return true;
}
return false;
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[Java] ๋ฐฑ์ค 16500๋ฒ - ๋ฌธ์์ด ํ๋ณ (0) | 2022.07.15 |
---|---|
[Java] ๋ฐฑ์ค 5430๋ฒ - AC (0) | 2022.07.14 |
[Java] ๋ฐฑ์ค 7453๋ฒ - ํฉ์ด 0์ธ ๋ค ์ ์ (0) | 2022.06.28 |
[Java] ๋ฐฑ์ค 9466๋ฒ - ํ ํ๋ก์ ํธ (0) | 2022.06.28 |
[Java] ๋ฐฑ์ค 14888๋ฒ - ์ฐ์ฐ์ ๋ผ์๋ฃ๊ธฐ (0) | 2022.06.28 |
๊ณต์ง์ฌํญ
์ต๊ทผ์ ์ฌ๋ผ์จ ๊ธ
์ต๊ทผ์ ๋ฌ๋ฆฐ ๋๊ธ
- Total
- Today
- Yesterday
๋งํฌ
TAG
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- TDD
- ํ๋กํผํฐ
- ๋ฐฑ์ค
- Baekjoon
- ์ฝ๋ฉํ ์คํธ
- ๋์์ธ ํจํด
- fp
- ์ด๋ถํ์
- ํฌํฌ์ธํฐ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ์๋ฐ์คํฌ๋ฆฝํธ
- git
- JavaScript
- ์๊ณ ๋ฆฌ์ฆ
- map
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ์นด์นด์ค ์ธํด
- ๋ฐฑ์ค javascript
- ์ด์์ฒด์
- ์ ์ญ ๋ณ์
- ๋ฐฑ์ค node.js
- ์๋ฐ
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ํ๋ก๊ทธ๋๋จธ์ค
- http
- ๋คํธ์ํฌ
- ํ๋กํ ์ฝ
- ๋ ์์ปฌ ํ๊ฒฝ
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
๊ธ ๋ณด๊ดํจ