ํฐ์คํ ๋ฆฌ ๋ทฐ
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์ ๊ตญ์ฌ์ฌ
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 8. 27. 17:52[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/43238
[ํ์ด]
์ด๋ถํ์์ ์ด์ฉํ์ฌ ๋ฌธ์ ๋ฅผ ํ์ดํ์์ต๋๋ค.
์์ ์ฒ๋ผ n์ด 6์ด๊ณ , time๊ฐ [7, 10] ์ด๋ผ๋ฉด, ์ต๋ ์ฌ์ฌ ์๊ฐ์ 10*6 = 60๋ถ์ด๋ฉ๋๋ค.
์ต๋ ์ฌ์ฌ ์๊ฐ 60์ ๊ธฐ์ค์ผ๋ก ์น๊ฐ์ ์ฌ์ฌํ๋ค๋ฉด ์ฌ์ฌ ๊ฐ๋ฅ ์น๊ฐ์ ์๋์ ๊ฐ์ต๋๋ค.
60 / 7 = 8๋ช + 60 / 10 = 10๋ช = 18๋ช
ํ์ง๋ง, ์ต์ ์๊ฐ์ผ๋ก 6๋ช ์ ์น๊ฐ์ ๋ชจ๋ ์ฌ์ฌํด์ผ ํ๋ฏ๋ก, left = 1, right = 60์ผ๋ก ์ด๋ถํ์์ ์งํํฉ๋๋ค.
mid = (1 + 60)/2 = 30์ผ๋ก ์์ํ์ฌ ์๋์ ๊ฐ์ด ์ด๋ถํ์์ ์งํํฉ๋๋ค.
- mid์๊ฐ ๊ธฐ์ค์ผ๋ก ์ฌ์ฌ ๊ฐ๋ฅ ์น๊ฐ์ด 6๋ณด๋ค ์๋ค๋ฉด, left = mid + 1๋ก ๊ฐฑ์
- mid์๊ฐ ๊ธฐ์ค์ผ๋ก ์ฌ์ฌ ๊ฐ๋ฅ ์น๊ฐ์ด 6๋ณด๋ค ํฌ๊ฑฐ๋ ๊ฐ๋ค๋ฉด, right = mid - 1๋ก ๊ฐฑ์
๋ฐ๋ผ์ ์ต์ข ์ ์ผ๋ก left์ ์ต์ ์๊ฐ์ด ์ ์ฅ๋๊ฒ ๋๊ณ , ์ด 28๋ถ์ผ๋ก ๋ชจ๋ ์น๊ฐ์ ์ฌ์ฌํ ์ ์์ต๋๋ค.
[์ฝ๋]
function solution(n, times) {
var answer = 0;
times.sort((a, b) => a - b);
const max = times[times.length -1]*n;
let left = 1;
let right = max;
while(left <= right) {
let mid = Math.floor((left + right)/2);
let count = 0;
for(let i=0;i<times.length;i++) {
count += Math.floor(mid/times[i]);
}
if(count >= n) {
right = mid - 1;
} else {
left = mid + 1;
}
}
answer = left;
return answer;
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์นด๋ ์ง ๋ง์ถ๊ธฐ (0) | 2022.08.31 |
---|---|
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ํฉ์น ํ์ ์๊ธ (0) | 2022.08.27 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์์ฅ (0) | 2022.08.26 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๊ฐ์ฅ ๋จผ ๋ ธ๋ (0) | 2022.08.26 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ํ๊ฒ ๋๋ฒ (0) | 2022.08.23 |
- Total
- Today
- Yesterday
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- JavaScript
- ์๊ณ ๋ฆฌ์ฆ
- ์ฝ๋ฉํ ์คํธ
- ํ๋ก๊ทธ๋๋จธ์ค
- ์๋ฐ
- ๋ฐฑ์ค javascript
- ์ด๋ถํ์
- fp
- map
- ํ๋กํ ์ฝ
- ํฌํฌ์ธํฐ
- git
- ๋ฐฑ์ค
- ์นด์นด์ค ์ธํด
- ๋ฐฑ์ค node.js
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
- http
- ํ๋กํผํฐ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- TDD
- ์ด์์ฒด์
- ์๋ฐ์คํฌ๋ฆฝํธ
- ์ ์ญ ๋ณ์
- ๋คํธ์ํฌ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- ๋ ์์ปฌ ํ๊ฒฝ
- Baekjoon
- ๋์์ธ ํจํด
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |