์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |
- ๋ฐ๋ธ์ฝ์ค
- ํ๋ก๊ทธ๋๋จธ์ค
- CSS
- float
- ์๊ณ ๋ฆฌ์ฆ
- ๋ฐ๋ธ์ฝ์ค3๊ธฐ
- Props
- ํ๋ก ํธ์๋
- Gatsby
- ๋ธ๋ก๊ทธ
- REACT
- ์๋ฐ์คํฌ๋ฆฝํธ
- useRef
- useEffect
- fetch API
- position
- history api
- Flex
- ์ฝ๋ฉํ ์คํธ
- Today
- Total
Daehyunii's Dev-blog
๋ง๊ตฌ๊ฐ ์ ํ๊ธฐ(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ) ๋ณธ๋ฌธ
๋ง๊ตฌ๊ฐ ์ ํ๊ธฐ(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ)
Daehyunii 2022. 9. 6. 19:04๋ฌธ์ (์ถ์ฒ : ์ธํ๋ฐ ์๋ฐ์คํฌ๋ฆฝํธ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ํ์ด ๊ฐ์, ์ ๋ณด์ฌ๋ฆผํผ์๋)
N๊ฐ์ ๋ง๊ตฌ๊ฐ์ด ์์ง์ ์์ ์์ต๋๋ค. ๊ฐ ๋ง๊ตฌ๊ฐ์ x1, x2, x3, ......, xN์ ์ขํ๋ฅผ ๊ฐ์ง๋ฉฐ, ๋ง ๊ตฌ๊ฐ๊ฐ์ ์ขํ๊ฐ ์ค๋ณต๋๋ ์ผ์ ์์ต๋๋ค. ํ์๋ C๋ง๋ฆฌ์ ๋ง์ ๊ฐ์ง๊ณ ์๋๋ฐ, ์ด ๋ง๋ค์ ์๋ก ๊ฐ๊น์ด ์๋ ๊ฒ์ ์ข์ํ์ง ์์ต๋๋ค. ๊ฐ ๋ง๊ตฌ๊ฐ์๋ ํ ๋ง๋ฆฌ์ ๋ง๋ง ๋ฃ์ ์ ์๊ณ , ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ง์ ๊ฑฐ๋ฆฌ๊ฐ ์ต๋๊ฐ ๋๊ฒ ๋ง์ ๋ง๊ตฌ๊ฐ์ ๋ฐฐ์นํ๊ณ ์ถ์ต๋๋ค. C๋ง๋ฆฌ์ ๋ง์ N๊ฐ์ ๋ง๊ตฌ๊ฐ์ ๋ฐฐ์นํ์ ๋ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ง์ ๊ฑฐ๋ฆฌ๊ฐ ์ต๋๊ฐ ๋๋ ๊ทธ ์ต๋ ๊ฐ์ ์ถ๋ ฅํ๋ ํ๋ก๊ทธ๋จ์ ์์ฑํ์ธ์.
โฃ ์
๋ ฅ์ค๋ช
์ฒซ ์ค์ ์์ฐ์ N(3<=N<=200,000)๊ณผ C(2<=C<=N)์ด ๊ณต๋ฐฑ์ ์ฌ์ด์ ๋๊ณ ์ฃผ์ด์ง๋๋ค. ๋์งธ ์ค์ ๋ง๊ตฌ๊ฐ์ ์ขํ xi(0<=xi<=1,000,000,000)๊ฐ ์ฐจ๋ก๋ก ์ฃผ์ด์ง๋๋ค.
โฃ ์ถ๋ ฅ์ค๋ช
์ฒซ ์ค์ ๊ฐ์ฅ ๊ฐ๊น์ด ๋ ๋ง์ ์ต๋ ๊ฑฐ๋ฆฌ๋ฅผ ์ถ๋ ฅํ์ธ์.
โฃ ์ ๋ ฅ์์ 1
5 3
1 2 8 4 9
โฃ ์ถ๋ ฅ์์ 1
3
Tip
๋ฌธ์ ํ์ด
//๋ด๊ฐ ์์ฑํ ๋ต
function count(arr,distance){ //5
let endPoint = arr[0];
let cnt = 1;
for(let i = 1 ; i < arr.length ; i++){
if(arr[i]-endPoint >= distance){
cnt++;
endPoint = arr[i];
}
}
return cnt;
}
function solution(arr,horses){
let answer = 0;
arr.sort((a,b) => a-b);
let lt = 1; // ๋ง์ ๋ฐฐ์นํ ์ ์๋ ์ต๋จ ๊ฑฐ๋ฆฌ๋ 1์
let rt = Math.max(...arr); // ๋ฐฐ์ด์ ๊ฐ์ฅ ํฐ ๊ฐ์ ๊ทธ๋ฅ ๋ฃ์
console.log('lt',lt);
console.log('rt',rt);
while(lt <= rt){
let mid = Math.floor((lt+rt)/2);
if(count(arr,mid) >= horses){ //ํ์ํ ๋ง๋ฆฌ์ ๋งํผ ์ ๋๋ก ๋ฐฐ์น๊ฐ ๋ ๊ฒฝ์ฐ์, ๊ฑฐ๋ฆฌ๋ฅผ ๋๋ ค์ผํจ
if(mid > answer) answer = mid;
lt = mid+1;
}else{ //ํ์ํ ๋ง๋ฆฌ์ ๋งํผ ์ ๋๋ก ๋ฐฐ์น๊ฐ ๋์ง ์์ ๊ฒฝ์ฐ์, ๊ฑฐ๋ฆฌ๋ฅผ ์ค์ฌ์ผํจ
rt = mid-1;
}
}
return answer;
}
let arr = [1,2,8,4,9];
console.log(solution(arr,3));
'๐ Language & CS knowledge > Algorithm (๊ธฐ์ด๋ฌธ์ ํ์ด)' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
์ฌ๊ทํจ์๋ฅผ ์ด์ฉํ ์ด์ง์ ์ถ๋ ฅ (0) | 2022.09.07 |
---|---|
์ฌ๊ทํจ์ (0) | 2022.09.07 |
๋ฎค์ง๋น๋์ค(๊ฒฐ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.09.06 |
์ด๋ถ๊ฒ์ (0) | 2022.09.06 |
๊ฒฐํผ์(ํ์ ์๊ณ ๋ฆฌ์ฆ) (0) | 2022.09.06 |