[TIL]Day 311

이재희·2021년 9월 27일
0

TIL

목록 보기
300/312

기지국 설치

예전에 풀었던 것과 비교
예전

def solution(n, stations, w):
    answer = 0
    s = 0
    l = []
    for i in stations:
        if i-1-w > s:
            l.append(i-1-w-s)
        s = i + w
    if s < n:
        l.append(n - s)
        
    for i in l:
        answer += (i+w*2)//(w*2+1)
    
    return answer

새로푼것
기지국 위치 - 거리
기지국 위치 + 거리
이런식으로 처음과 끝을 잡고 그 사이는 나누기로 설치할 기지국 계산

def solution(n, stations, w):
    start = 1
    answer = 0
    for s in stations:
        end = s - w
        if end - start > 0:
            q,r = divmod(end - start,2*w+1)
            answer += q
            if r != 0:
                answer += 1
        start = s + w + 1
    if start <= n:
        if start == n:
            answer += 1
        else:
            q,r = divmod(n - start,2*w+1)
            answer += q
            if r != 0:
                answer += 1
    return answer
profile
오늘부터 열심히 산다

0개의 댓글