[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ธฐ์ง€๊ตญ ์„ค์น˜ / ํŒŒ์ด์ฌ
Problem Solving ๐Ÿ”ฅ/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ๊ธฐ์ง€๊ตญ ์„ค์น˜ / ํŒŒ์ด์ฌ

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