ํฐ์คํ ๋ฆฌ ๋ทฐ
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๊ธฐ์ง๊ตญ ์ค์น
๊ฐ๋ฐ๊ฐ๊ตด๐ธ 2022. 10. 17. 17:27[๋ฌธ์ ]
https://school.programmers.co.kr/learn/courses/30/lessons/12979#
[ํ์ด]
์ ํ๋ ฅ์ดw์ธ ๊ฒฝ์ฐ, ์ต๋ 2*w + 1 ๊ฑฐ๋ฆฌ๋งํผ ์ํํธ๋ค์๊ฒ ์ ํ๊ฐ ๋๋ฌ๋ฉ๋๋ค.
๋ฐ๋ผ์ ์ ํ๊ฐ ๋๋ฌํ์ง ์์ ์ฐ์๋ ์ํํธ์ ์ต์์ ๊ธฐ์ง๊ตญ์ผ๋ก ์ ํ๋ฅผ ์ ๋ฌํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- Math.ceil(์ฐ์๋ ์ํํธ ๊ธธ์ด/(2*w+1))
์์ 1๋ฒ๊ณผ ๊ฐ์ด w=1์ธ ๊ฒฝ์ฐ ์ ํ๊ฐ ๋๋ฌํ์ง ์์ ์ฐ์๋ ์ํํธ์ ๊ธธ์ด๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
๋ฐ๋ผ์ Math.ceil(2/3) + Math.ceil(4/3) = 1 + 2 = 3์ด ์ ๋ต์ด ๋ฉ๋๋ค.
์ด๋ฅผ ์ฝ๋๋ก ๊ตฌํํ๊ธฐ ์ํด ํ์ฌ ๊ธฐ์ค์ idx = 1๋ก ์ด๊ธฐํํ ํ, stations๋ฅผ ํ์ํ๋ฉฐ ์ํํธ์ ๊ธธ์ด๋ฅผ ๊ตฌํฉ๋๋ค.
- start = 3, end = 5 ์ด๋ฏ๋ก ๊ธธ์ด๋ start - idx = 2์ด๋ฉฐ, idx = end + 1 = 6์ผ๋ก ๊ฐฑ์
- start = 10, end = 11์ด๋ฏ๋ก ๊ธธ์ด๋ start - idx = 4์ด๋ฉฐ, idx = end + 1 = 12์ผ๋ก ๊ฐฑ์
๋ฐ๋ผ์ ์ ํ๊ฐ ์๋ ์ํํธ์ ๊ธธ์ด๋ 2์ 4์ธ๊ฒ์ ๊ตฌํ ์ ์์ต๋๋ค.
[์ฝ๋]
function solution(n, stations, w) {
var answer = 0;
let idx = 1;
stations.forEach((station) => {
let [start, end] = [station - w, station + w];
if(idx > n) {
return answer;
}
if(start > idx) {
answer += Math.ceil((start - idx)/(2*w+1));
}
idx = end+1;
})
if(idx <= n) {
answer += Math.ceil((n - idx + 1)/(2*w+1));
}
return answer;
}
'Algorithm > Programmers' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์ซ์ ๊ฒ์ (1) | 2022.09.30 |
---|---|
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๋คํธ ๊ฒ์ (0) | 2022.09.18 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๋ธ๋ก๊ฒ์ (0) | 2022.09.16 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ๋ฌด์ง์ ๋จน๋ฐฉ ๋ผ์ด๋ธ (0) | 2022.09.11 |
[JavaScript] ํ๋ก๊ทธ๋๋จธ์ค - ์คํจ์จ (0) | 2022.09.05 |
- Total
- Today
- Yesterday
- ๋คํธ์ํฌ
- ์๊ณ ๋ฆฌ์ฆ
- ๋ค์ด๋๋ฏน ํ๋ก๊ทธ๋๋ฐ
- ์นด์นด์ค ์ธํด
- ํ๋ก๊ทธ๋๋จธ์ค
- ๋ฐฑ์ค
- ํ๋กํ ์ฝ
- ์ด์์ฒด์
- ๋์์ธ ํจํด
- JavaScript
- ํ๋กํผํฐ
- map
- fp
- ์๋ฐ
- ์ด๋ถํ์
- ๊ฐ์ฒด์งํฅ ํ๋ก๊ทธ๋๋ฐ
- ์๋ฐ์คํฌ๋ฆฝํธ
- ๋ชจ๋ ์๋ฐ์คํฌ๋ฆฝํธ deep dive
- TDD
- ๋ฐฑ์ค node.js
- ๋ ์์ปฌ ํ๊ฒฝ
- git
- ๋ฐฑ์ค javascript
- http
- ์ ์ญ ๋ณ์
- ํฌํฌ์ธํฐ
- ํจ์ํ ํ๋ก๊ทธ๋๋ฐ
- ์ฝ๋ฉํ ์คํธ
- Baekjoon
- 2019 ์นด์นด์ค ๊ฐ๋ฐ์ ๊ฒจ์ธ ์ธํด
์ผ | ์ | ํ | ์ | ๋ชฉ | ๊ธ | ํ |
---|---|---|---|---|---|---|
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 |