
ํด๋น ํ์ด๋ eunchanee๋์ tistory๋ฅผ ์ฐธ๊ณ ํ์ฌ ์ ์๋์์์ ๋ฏธ๋ฆฌ ๋ฐํ๋๋ค.
N๊ฐ์ ์ํํธ๊ฐ ์ผ๋ ฌ๋ก ์ญ ๋์ด์ ์์ต๋๋ค. ์ด ์ค์์ ์ผ๋ถ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๊ธฐ์ ์ด ๋ฐ์ ํด 5g ์์๊ฐ ๋์์ ธ 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ ค ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ 5g ๊ธฐ์ง๊ตญ์ 4g ๊ธฐ์ง๊ตญ๋ณด๋ค ์ ๋ฌ ๋ฒ์๊ฐ ์ข์, 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ฉด ์ด๋ค ์ํํธ์๋ ์ ํ๊ฐ ๋๋ฌํ์ง ์์ต๋๋ค.
์๋ฅผ ๋ค์ด 11๊ฐ์ ์ํํธ๊ฐ ์ญ ๋์ด์ ์๊ณ , [4, 11] ๋ฒ์งธ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๋ง์ฝ ์ด 4g ๊ธฐ์ง๊ตญ์ด ์ ํ ๋๋ฌ ๊ฑฐ๋ฆฌ๊ฐ 1์ธ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๋ ๊ฒฝ์ฐ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค. (์ ํ์ ๋๋ฌ ๊ฑฐ๋ฆฌ๊ฐ W์ผ ๋, ๊ธฐ์ง๊ตญ์ด ์ค์น๋ ์ํํธ๋ฅผ ๊ธฐ์ค์ผ๋ก ์ ํ๋ฅผ ์์ชฝ์ผ๋ก W๋งํผ ์ ๋ฌํ ์ ์์ต๋๋ค.)



์ด๋, ์ฐ๋ฆฌ๋ 5g ๊ธฐ์ง๊ตญ์ ์ต์๋ก ์ค์นํ๋ฉด์ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๋ ค๊ณ ํฉ๋๋ค. ์์ ์์์์ ์ต์ 3๊ฐ์ ์ํํธ ์ฅ์์ ๊ธฐ์ง๊ตญ์ ์ค์นํด์ผ ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ ์ ์์ต๋๋ค.
์ํํธ์ ๊ฐ์ N, ํ์ฌ ๊ธฐ์ง๊ตญ์ด ์ค์น๋ ์ํํธ์ ๋ฒํธ๊ฐ ๋ด๊ธด 1์ฐจ์ ๋ฐฐ์ด stations, ์ ํ์ ๋๋ฌ ๊ฑฐ๋ฆฌ W๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ์ํํธ์ ์ ํ๋ฅผ ์ ๋ฌํ๊ธฐ ์ํด ์ฆ์คํด์ผ ํ ๊ธฐ์ง๊ตญ ๊ฐ์์ ์ต์๊ฐ์ ๋ฆฌํดํ๋ solution ํจ์๋ฅผ ์์ฑํด์ฃผ์ธ์
| N | stations | W | answer | 
|---|---|---|---|
| 11 | [4, 11] | 1 | 3 | 
| 16 | [9] | 2 | 3 | 
์
์ถ๋ ฅ ์ #1
๋ฌธ์ ์ ์์์ ๊ฐ์ต๋๋ค
์ ์ถ๋ ฅ ์ #2


โ๋์ ํ์ด
function solution(n, stations, w) {
    let result = 0
    let start = 1
    let index = 0
    let range = [stations[index]-w,stations[index]+w]
    while(start <= n) {
        // ๊ธฐ์ง๊ตญ ๋ฒ์ ๋ด์ ์๋ ๊ฒฝ์ฐ
        if(start >= stations[index]-w && start <= stations[index]+w) {
            start = stations[index]+w
            index++
        // ๊ธฐ์ง๊ตญ ์ค์น ํ์
        } else {
            // ์ด์ , ์ดํ ๋ฒ์๊ฐ ์ค๋ณต๋์ง ์๋๋ก ๋ฒ์์ 2๋ฐฐ๋ฅผ ๊ณฑํด ๋ค์ ์ํํธ๋ก ์ด๋
            start += w*2
            result++
        }
        start++
    }
    return result
}
๋ฒ์๊ฐ ํฌ์ง ์์ Brute Force๋ก๋ ํด๊ฒฐํ ์ ์๋ ์๊ณ ๋ฆฌ์ฆ ๋ฌธ์ ์๋ค.
์ดํดํ๊ธฐ ํ๋ค์๋ ๋ถ๋ถ์ ํด๋น
start+=w*2
๋ก ์ด์งธ์ ๋ฒ์์ 2๋ฐฐ๋งํผ์ start์ ๋ํ๋๊ฑฐ์ง? ๋ผ๋ ์๊ฐ์ ํ์๋๋ฐ
์ด๋ ์์ผ๋ก๋ง ํด๋น๋๋ ๋ฒ์๊ฐ ์๋ ๋ค์ ์ํํธ ๋จ์ง์ ๋ค๋ก ์ค๋ณต๋๋ ๊ฒฝ์ฐ๊ฐ ์๋๋ก ๋ฒ์์ 2๋ฐฐ์ธ ์๋ค๋ฅผ ์ง์ ํด ๋ํด์ฃผ์๋ค๋ ๊ฒ์ ์๊ฒ๋์์