프로그래머스 - 기지국 설치
알고리즘/프로그래머스

프로그래머스 - 기지국 설치

https://programmers.co.kr/learn/courses/30/lessons/12979

 

코딩테스트 연습 - 기지국 설치

N개의 아파트가 일렬로 쭉 늘어서 있습니다. 이 중에서 일부 아파트 옥상에는 4g 기지국이 설치되어 있습니다. 기술이 발전해 5g 수요가 높아져 4g 기지국을 5g 기지국으로 바꾸려 합니다. 그런데 5

programmers.co.kr

 

 

1. 유형

구현

 

2. 풀이

1) station의 요소별로 왼쪽 끝과 오른쪽 끝을 구함

2) 그러면 위 처럼 빨간색의 범위를 아는게 가능

3) 기지국의 범위는 w*2+1이다. 이것이 빨간색에 몇개 설치되는지 구할수있음

 

3. 코드

def calc(mok, na):
    if mok>0 and na>0:
        return mok+1
    elif mok>0 and na ==0:
        return mok
    elif mok==0 and na>0:
        return 1
    else:
        return 0
def solution(n, stations, w):
    answer = 0
    end = 0
    size = w*2+1
    for station in stations:
        left = station-w
        right = station+w
        dist = left - end -1
        end = right
        if dist > 0:
            mok = dist//size
            na = dist%size
            answer += calc(mok, na)
    k = n - end
    if k>0:
        mok = k//size
        na = k%size
        answer += calc(mok, na)
    return answer