https://programmers.co.kr/learn/courses/30/lessons/12979
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ๊ธฐ์ง๊ตญ ์ค์น
N๊ฐ์ ์ํํธ๊ฐ ์ผ๋ ฌ๋ก ์ญ ๋์ด์ ์์ต๋๋ค. ์ด ์ค์์ ์ผ๋ถ ์ํํธ ์ฅ์์๋ 4g ๊ธฐ์ง๊ตญ์ด ์ค์น๋์ด ์์ต๋๋ค. ๊ธฐ์ ์ด ๋ฐ์ ํด 5g ์์๊ฐ ๋์์ ธ 4g ๊ธฐ์ง๊ตญ์ 5g ๊ธฐ์ง๊ตญ์ผ๋ก ๋ฐ๊พธ๋ ค ํฉ๋๋ค. ๊ทธ๋ฐ๋ฐ 5
programmers.co.kr
ํ์ด
์๊ทผํ ๊น๋ค๋ก์ ๋ค.
์ ํ์ ์ธ ๋ฌธ์ ๋ค์ ์ฌ์ด๋ฐ, ์ด๋ฐ ๋ฌธ์ ๋ ์ ํ์ ์ธ ๋ฌธ์ ๊ฐ ์๋๋..
ํต์ฌ์, ๊ธฐ์ง๊ตญ ์ ํ์ ํฌํจ๋์ง ์๋ ๋ฒ์๋ฅผ ์์๋ด๋ ๊ฒ์ด๋ค.
๋ฒ์๋ฅผ ์์๋๋ค๋ฉด ์ฝ๊ฒ ํ ์ ์๋ค.
def solution(n, stations, w):
answer = 0
d = []
# ์ฒ์๋ฒ์
d.append((1, stations[0] - w - 1))
for i in range(1, len(stations)):
d.append((stations[i-1]+w+1, stations[i]-w-1))
#๋ง์ง๋ง ๋ฒ์
d.append((stations[-1] + w + 1, n))
w = 2 * w + 1
for (st, fr) in d:
dist = fr - st + 1
if dist <= 0:
continue
v = dist // w
if dist % w != 0:
answer += 1
answer += v
return answer