01-09 04:37
Recent Posts
Recent Comments
Tags
- Java
- ์คํฝ๋ ํ
- ์ด๋ธ์
- ํ์ด์๊ณต๋ชจ์
- RaspberryPi
- ์๋์ด๋ ธ
- DB
- API๋ง์ผํ๋ ์ด์ค
- linux
- ์กํ๊ณ
- ํ์ด์ฌ
- ์คํฝ์ค๋น
- Naver Cloud
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- DATABASE
- Spring
- appetizer
- SQL
- ICT๋ฉํ ๋ง
- ํ์ด์
- mysql
- JOBํ๊ณ
- ICT
- python
- TSQL
- ์จ์ผ๋ํ
- ํ๋ก๋ณด๋ ธ
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- ict๊ณต๋ชจ์
- ์๋ฐ
- Today
- Total
miinsun
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 2110 :: ๊ณต์ ๊ธฐ ์ค์น ๋ณธ๋ฌธ
Algorithm/Baekjoon
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 2110 :: ๊ณต์ ๊ธฐ ์ค์น
miinsun 2022. 4. 7. 18:42
๐ฌ ๋ฌธ์ ์ค๋ช
๋ํ์ด์ ์ง N๊ฐ๊ฐ ์์ง์ ์์ ์๋ค. ๊ฐ๊ฐ์ ์ง์ ์ขํ๋ x1, ..., xN์ด๊ณ , ์ง ์ฌ๋ฌ๊ฐ๊ฐ ๊ฐ์ ์ขํ๋ฅผ ๊ฐ์ง๋ ์ผ์ ์๋ค.
๋ํ์ด๋ ์ธ์ ์ด๋์๋ ์์ดํ์ด๋ฅผ ์ฆ๊ธฐ๊ธฐ ์ํด์ ์ง์ ๊ณต์ ๊ธฐ C๊ฐ๋ฅผ ์ค์นํ๋ ค๊ณ ํ๋ค. ์ต๋ํ ๋ง์ ๊ณณ์์ ์์ดํ์ด๋ฅผ ์ฌ์ฉํ๋ ค๊ณ ํ๊ธฐ ๋๋ฌธ์, ํ ์ง์๋ ๊ณต์ ๊ธฐ๋ฅผ ํ๋๋ง ์ค์นํ ์ ์๊ณ , ๊ฐ์ฅ ์ธ์ ํ ๋ ๊ณต์ ๊ธฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ๊ฐ๋ฅํ ํฌ๊ฒ ํ์ฌ ์ค์นํ๋ ค๊ณ ํ๋ค.
C๊ฐ์ ๊ณต์ ๊ธฐ๋ฅผ N๊ฐ์ ์ง์ ์ ๋นํ ์ค์นํด์, ๊ฐ์ฅ ์ธ์ ํ ๋ ๊ณต์ ๊ธฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ฅผ ์ต๋๋ก ํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์์ค.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ
- ์ฒซ์งธ ์ค์ ์ง์ ๊ฐ์ N (2 ≤ N ≤ 200,000)๊ณผ ๊ณต์ ๊ธฐ์ ๊ฐ์ C (2 ≤ C ≤ N)์ด ํ๋ ์ด์์ ๋น ์นธ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋ค.
- ๋์งธ ์ค๋ถํฐ N๊ฐ์ ์ค์๋ ์ง์ ์ขํ๋ฅผ ๋ํ๋ด๋ xi (0 ≤ xi ≤ 1,000,000,000)๊ฐ ํ ์ค์ ํ๋์ฉ ์ฃผ์ด์ง๋ค.
์ถ๋ ฅ
- ์ฒซ์งธ ์ค์ ๊ฐ์ฅ ์ธ์ ํ ๋ ๊ณต์ ๊ธฐ ์ฌ์ด์ ์ต๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ค.
์์ ์ ๋ ฅ 1)
5 3
1
2
8
4
9
์์ ์ถ๋ ฅ 1)
3
๊ณต์ ๊ธฐ๋ฅผ 1, 4, 8 ๋๋ 1, 4, 9์ ์ค์นํ๋ฉด ๊ฐ์ฅ ์ธ์ ํ ๋ ๊ณต์ ๊ธฐ ์ฌ์ด์ ๊ฑฐ๋ฆฌ๋ 3์ด๊ณ , ์ด ๊ฑฐ๋ฆฌ๋ณด๋ค ํฌ๊ฒ ๊ณต์ ๊ธฐ๋ฅผ 3๊ฐ ์ค์นํ ์ ์๋ค.
โ
๐ป Main.java
- '1654 - ๋์ ์๋ฅด๊ธฐ ๋ฌธ์ '์ ์ ์ฌํ๋ค.
- ์ด๋ถ๊ฒ์, ๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ๋ค.
- lt์ rt๋ฅผ ์ค์ ํ๊ณ ์ต๋๊ฐ์ ์ฐพ์ ๋๊น์ง, mid๊ฐ์ ์กฐ์ ํด์ค๋ค.
- mid๊ฐ์ด int๋ฒ์๋ฅผ ์ด๊ณผํ ์๋ ์๊ธฐ๋๋ฌธ์ ๋ฐ์ดํฐํ์ long์ผ๋ก ํด์คฌ๋ค.
- ์ด ๋ฌธ์ ์์ mid๊ฐ์ ๊ฐ์ฅ ์ธ์ ํ ๋ ๊ณต์ ๊ธฐ ์ฌ์ด์ ์ต๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅํ๋ค.
- mid๊ฐ์ ์ฆ๊ฐํจ์๋ฐ๋ผ ๊ณต์ ๊ธฐ๋ฅผ c๊ฐ ์ค์นํ ์ ์๋์ง์ ์ ๋ฌด๋ฅผ ์๋ฉด ๋๋ค.
/* ๋ฐฑ์ค ๊ทธ๋ํ - 2110 :: ๊ณต์ ๊ธฐ ์ค์น */
import java.util.*;
import java.io.*;
public class Main {
static public long count (int[] arr, long dist) {
long cnt = 1;
// ๊ฐ์ฅ ์ผ์ชฝ์๋ ๋ฌด์กฐ๊ฑด ๋ฐฐ์น
int ep = arr[0];
for(int i = 0; i < arr.length; i++) {
if(arr[i] - ep >= dist) {
cnt++;
ep = arr[i];
}
}
return cnt;
}
public static void main(String[] args) throws IOException{
Scanner sc = new Scanner(System.in);
// ์ง์ ๊ฐ์
int n = sc.nextInt();
// ๊ณต์ ๊ธฐ์ ๊ฐ์
int c = sc.nextInt();
// ์ง์ ์ขํ
int [] arr = new int [n];
for(int i = 0; i < n; i++) {
arr[i] = sc.nextInt();
}
// ๋ฐฐ์ด ์ ๋ ฌ, lt,rt ์ด๊ธฐํ
Arrays.sort(arr);
long lt = 1;
long rt = arr[n-1];
long answer = 0;
// ์ด๋ถ ํ์ (๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ)
while(lt <= rt) {
// mid๊ฐ์ ๊ฐ์ฅ ์ธ์ ํ ๊ณต์ ๊ธฐ์ ๊ฑฐ๋ฆฌ์ด๋ค.
long mid = (lt + rt) / 2;
// count()๋ ์ ํจ๊ฐ์ ์ฐพ๋ ํจ์
if(count(arr, mid) >= c) {
answer = mid;
// ์ต๋๊ฐ์ ์ฐพ๊ธฐ ๋๋ฌธ์ ์ ํจ๊ฐ์ ์ฐพ์ผ๋ฉด ๋ฒ์๋ฅผ ๋ํ์ค๋ค.
lt = mid + 1;
}
else
rt = mid - 1;
}
System.out.println(answer);
sc.close();
}
}
'Algorithm > Baekjoon' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[BAEKJOON] ๋ฐฑ์ค ๋ถํ ์ ๋ณต 11728 :: ๋ฐฐ์ด ํฉ์น๊ธฐ (0) | 2022.04.10 |
---|---|
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 10815 :: ์ซ์ ์นด๋ (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 2805 :: ๋๋ฌด ์๋ฅด๊ธฐ (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ์ด๋ถ๊ฒ์ 1654 :: ๋์ ์๋ฅด๊ธฐ (0) | 2022.04.07 |
[BAEKJOON] ๋ฐฑ์ค ๊ทธ๋ํ 1967 :: ํธ๋ฆฌ์ ์ง๋ฆ (0) | 2022.04.07 |
Comments