ํด๋น ํ์ด๋ 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๋ฐฐ์ธ ์๋ค๋ฅผ ์ง์ ํด ๋ํด์ฃผ์๋ค๋ ๊ฒ์ ์๊ฒ๋์์