반응형

stations 배열을 이용해 전파가 전달되지 않는 아파트의 시작범위와 끝범위를 구해주며, 해당 범위를 커버할 수 있는 기지국의 개수를 구해주었습니다.

만약 전파의 도달 거리가 W라면, 기지국은 W * 2 + 1만큼의 범위를 커버할 수 있습니다.

따라서, (전파가 도달되지 않는 범위) / (W * 2 + 1)을 올림 처리하면, 해당 범위를 커버할 수 있는 기지국의 개수입니다.

 

#include <iostream>
#include <vector>
using namespace std;
int solution(int n, vector<int> stations, int w)
{
    int answer = 0, start = 1, end, cw = w * 2 + 1;
    stations.push_back(n + w + 1); // 마지막 누락된 범위도 구해주기 위함
    for(int i=0; i<stations.size(); i++) {
        end = stations[i] - w - 1;
        answer += (end - start + 1.0) / cw + 0.999999; // 올림처리
        start = stations[i] + w + 1;
    }
    return answer;
}

반응형

'Algorithm' 카테고리의 다른 글

프로그래머스 : 카펫  (0) 2021.11.14
프로그래머스 : 전화번호 목록  (0) 2021.11.14
프로그래머스 : 길 찾기 게임  (0) 2021.11.14
프로그래머스 : 외벽 점검  (0) 2021.11.14
프로그래머스 : 광고 삽입  (0) 2021.11.14

+ Recent posts