Tags
- ๋ฌธ์์ด
- DP
- sort
- CodingTest
- SpringBoot
- Python
- greedy
- LV2
- ๊ทธ๋ํ ํ์
- ๊ตฌํ
- ์๋ฃ๊ตฌ์กฐ
- ๊น์ด ์ฐ์ ํ์
- ์ ์๋ก
- BFS
- Dynamic Programming
- PGM
- ๊ต์ฌ
- ์ ๋ ฌ
- dfs
- ๋ฐฑํธ๋ํน
- stack
- queue
- ์ํ
- Brute Force Algorithm
- Study
- ๊ทธ๋ํ ์ด๋ก
- ๋๋น ์ฐ์ ํ์
- BOJ
- ์๋ฎฌ๋ ์ด์
- Java
Archives
๊ธฐ๋ก๋ฐฉ
BOJ_2110 : ๊ณต์ ๊ธฐ ์ค์น ๋ณธ๋ฌธ
๐ธ ๋ฌธ์ ๋ถ์ ๐ธ
- N๊ฐ์ ์์ง์ ์ ์ง๋ค์ ์ขํ๊ฐ ์
๋ ฅ์ผ๋ก ์ฃผ์ด์ง๋ค.
- C๊ฐ์ ๊ณต์ ๊ธฐ๋ฅผ ์ค์นํ๋ ค๋๋ฐ, ๊ฐ์ฅ ๊ฐ๊น์ด ๊ณต์ ๊ธฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ต๋๋ก ํ๊ณ ์ ํ๋ค.
- ๊ณต์ ๊ธฐ์ ๊ฑฐ๋ฆฌ๋ฅผ ์ด๋ถํ์๊ณผ ๊ฐ์ ํํ์ธ ๋งค๊ฐ๋ณ์ ํ์์ผ๋ก ์ฐพ์๋ธ๋ค.
๐ธ ์ฝ๋ ๐ธ
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st = new StringTokenizer(br.readLine());
int N = Integer.parseInt(st.nextToken());
int C = Integer.parseInt(st.nextToken());
int[] home = new int[N];
for (int i = 0; i < N; i++) {
home[i] = Integer.parseInt(br.readLine());
}
Arrays.sort(home);
int start = 1;
int end = home[N - 1] - home[0];
int answer = 0;
// ์ง๋ค ์ฌ์ด์ ๊ฑฐ๋ฆฌ ๊ธฐ์ค์ผ๋ก ์ด๋ถํ์
while (start <= end) {
int mid = (start + end) / 2;
int cnt = 1;
int temp = home[0];
for (int i = 1; i < N; i++) {
if (home[i] - temp >= mid) {
cnt++;
temp = home[i];
}
}
// ๊ณต์ ๊ธฐ ๊ฑฐ๋ฆฌ ๋๋ ค์ ์ฌ์ค์นํด๋ณด๊ธฐ
if (cnt >= C) {
answer = Integer.max(answer, mid);
start = mid + 1;
}
// ๊ณต์ ๊ธฐ ๊ฑฐ๋ฆฌ ์ค์ฌ์ ์ฌ์ค์น ํด๋ณด๊ธฐ
else end = mid - 1;
}
System.out.print(answer);
}
}
๐ธ ์ฝ๋ ํด์ ๐ธ
- ์ ๋ ฅ๋ ์ง๋ค์ ์ขํ๋ฅผ ์ค๋ฆ์ฐจ์์ผ๋ก ์ ๋ ฌํ๋ค.
- ๋งค๊ฐ๋ณ์ ํ์์ ์งํํ๋ค.
- start๋ ๊ณต์ ๊ธฐ ์ฌ์ด์ ์ต์๊ฑฐ๋ฆฌ, end๋ ๊ณต์ ๊ธฐ ์ฌ์ด์ ์ต๋๊ฑฐ๋ฆฌ์ด๋ค.
- ์ฒซ ๊ณต์ ๊ธฐ๋ ์ฒซ ๋ฒ์งธ ์ง์ ๋๋๋ค๊ณ ๊ฐ์ ํ๋ค.
- ๋ฐ๋ณต๋ฌธ์์ ๊ณต์ ๊ธฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๊ฐ mid๋ฅผ ๋์ง ์๋ ๊ฒฝ์ฐ cnt๋ฅผ ์ผ๋ค.
- cnt๊ฐ C ์ด์์ด๋ฉด, ์์ง ๋๋ฌด ๊ฐ๊น๋ค๋ ๊ฒ์ด๋ฏ๋ก ๊ณต์ ๊ธฐ ๊ฑฐ๋ฆฌ๋ฅผ ๋๋ ค๋ณด๊ธฐ ์ํด start๋ฅผ mid+1๋ก ์ฆ๊ฐ์ํจ๋ค.
- cnt๊ฐ C๋ณด๋ค ์๋ค๋ฉด, ๋๋ฌด ๋ฉ๋ค๋ ๊ฒ์ด๋ฏ๋ก ๊ณต์ ๊ธฐ ๊ฑฐ๋ฆฌ๋ฅผ ์ค์ด๊ธฐ ์ํด end๋ฅผ mid-1๋ก ๊ฐ์์ํจ๋ค.
๐ธ end ๐ธ
- ๋ฌธ์ ํ์ด ์ ๋ต์ด ๋ ์ค๋ฅด์ง ์์์ ํ์ด๋ฅผ ๋ณด๋ฉด์ ํด๋ก ์ฝ๋ฉ์ผ๋ก ํ์๋ค.
- ์ด๋ถํ์์ด ์ค๋๋ง์ด๋ผ ์ด์ํ๋ฉด์, ๋งค๊ฐ๋ณ์ ํ์์ ๋๋ฌด ์์ํด์ ํ์ด๋ฅผ ์ดํดํ๊ธฐ๋ ์ด๋ ค์ ๋ ๊ฒ ๊ฐ๋ค.
728x90
'CodingTest > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
BOJ_2252 : ์ค ์ธ์ฐ๊ธฐ (0) | 2023.04.22 |
---|---|
Lv.1 : ๋๋ง์ ์ํธ (0) | 2023.04.20 |
BOJ_1806 : ๋ถ๋ถํฉ (0) | 2023.04.18 |
BOJ_2589 : ๋ณด๋ฌผ์ฌ (0) | 2023.04.18 |
BOJ_11279 : ์ต๋ ํ (0) | 2023.04.18 |