01-24 00:19
Recent Posts
Recent Comments
Tags
- ICT
- python
- Spring
- ICT๋ฉํ ๋ง
- ๋ฐ์ดํฐ๋ฒ ์ด์ค
- linux
- ์๋ฐ
- ์ด๋ธ์
- API๋ง์ผํ๋ ์ด์ค
- mysql
- RaspberryPi
- appetizer
- ์คํฝ์ค๋น
- TSQL
- SQL
- DB
- ict๊ณต๋ชจ์
- ์จ์ผ๋ํ
- ํ์ด์
- ํ์ด์๊ณต๋ชจ์
- JOBํ๊ณ
- API MarketPlace ๊ธ๋ก๋ฒ ์ํฌํฐ์ฆ
- ์กํ๊ณ
- ํ์ด์ฌ
- Java
- ์คํฝ๋ ํ
- DATABASE
- Naver Cloud
- ํ๋ก๋ณด๋ ธ
- ์๋์ด๋ ธ
- Today
- Total
miinsun
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_52 ๋ง๊ตฌ๊ฐ ์ ํ๊ธฐ(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ) ๋ณธ๋ฌธ
Algorithm/Java
[Algorithm]์๊ณ ๋ฆฌ์ฆ ์๋ฐ_52 ๋ง๊ตฌ๊ฐ ์ ํ๊ธฐ(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ)
miinsun 2022. 1. 13. 17:20
๐ฌ ๋ฌธ์ ์ค๋ช
N๊ฐ์ ๋ง๊ตฌ๊ฐ์ด ์์ง์ ์์ ์์ต๋๋ค. ๊ฐ ๋ง๊ตฌ๊ฐ์ x1, x2, x3, ......, xN์ ์ขํ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ง๊ตฌ๊ฐ ๊ฐ์ ์ขํ๊ฐ ์ค๋ณต๋๋ ์ผ์ ์์ต๋๋ค.
ํ์๋ C๋ง๋ฆฌ์ ๋ง์ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ด ๋ง๋ค์ ์๋ก ๊ฐ๊น์ด ์๋ ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ๊ฐ ๋ง๊ตฌ๊ฐ์๋ ํ ๋ง๋ฆฌ์ ๋ง๋ง ๋ฃ์ ์ ์๊ณ , ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ง์ ๊ฑฐ๋ฆฌ๊ฐ ์ต๋๊ฐ ๋๊ฒ ๋ง์ ๋ง๊ตฌ๊ฐ์ ๋ฐฐ์นํ๊ณ ์ถ์ต๋๋ค.
C๋ง๋ฆฌ์ ๋ง์ N๊ฐ์ ๋ง๊ตฌ๊ฐ์ ๋ฐฐ์นํ์ ๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ง์ ๊ฑฐ๋ฆฌ๊ฐ ์ต๋๊ฐ ๋๋ ๊ทธ ์ต๋๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
๐จ ์ ์ถ๋ ฅ ์
์ ๋ ฅ - ์ฒซ ์ค์ ์์ฐ์ N(3<=N<=200,000)๊ณผ C(2<=C<=N)์ด ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋๋ค.
๋์งธ ์ค์ ๋ง๊ตฌ๊ฐ์ ์ขํ xi(0<=xi<=1,000,000,000)๊ฐ ์ฐจ๋ก๋ก ์ฃผ์ด์ง๋๋ค.
5 3
1 2 8 4 9
์ถ๋ ฅ - ์ฒซ ์ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ง์ ์ต๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅํ์ธ์.
3
โ
๐ป Solution.java
import java.util.*;
public class Main {
public int count(int[] arr, int dist) { //๋ง๊ตฌ๊ฐ ๊ฐ์ ๊ฑฐ๋ฆฌ์ ํ์ฉ๋๋ ๋ง ์
int cnt = 1;
int ep = arr[0];
for(int i = 1; i < arr.length; i++) {
if(arr[i] - ep >= dist) {
cnt++;
ep = arr[i];
}
}
return cnt;
}
public int solution(int n, int c, int[] arr) {
int answer = 0;
Arrays.sort(arr);
int lt = 1; // ๋ง๊ตฌ๊ฐ ๊ฐ ๊ฐ์ฅ ์งง์ ๊ฑฐ๋ฆฌ
int rt = arr[n-1]; // ๋ง๊ตฌ๊ฐ ๊ฐ ๊ฐ์ฅ ๋จผ ๊ฑฐ๋ฆฌ
while(lt <= rt) {
int mid = (lt + rt) / 2;
if(count(arr, mid) >= c) {
answer = mid;
lt = mid + 1;
}
else
rt = mid - 1;
}
return answer;
}
public static void main(String[] args){
Main main = new Main();
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();
}
System.out.println(main.solution(n, c, arr));
sc.close();
return ;
}
}
'Algorithm > Java' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
Comments