N

(프로그래머스 c++)기지국 설치 본문

프로그래머스 알고리즘/3단계

(프로그래머스 c++)기지국 설치

naeunchan 2020. 7. 13. 15:01
728x90
반응형

1번 기지국부터 n번 기지국까지 검사를 한다.

start는 현재 위치한 기지국 번호, index는 stations의 인덱스를 나타내는 변수다.

 

while문을 통해 start ~ n까지 반복하도록 한다.

만약 stations[index] - w <= start <= stations[index] + w라면

이미 설치되어 있기 때문에 start를 stations[index] + w로 바꿔주고, index++을 해주어 다음 기지국 설치 번호를 찾는다.

 

아니라면 기지국 설치가 필요한 번호이다.

start += 2 * w를 해주어 설치를 한 후, 위치를 옮겨주도록 하고,

answer++을 해준다.

 

또한 무조건 start++을 해주어 위치를 계속하여 옮겨주도록 하면 된다.

#include <iostream>
#include <vector>
using namespace std;

int solution(int n, vector<int> stations, int w)
{
    int answer = 0, start = 1, index = 0;

    while(start <= n)
    {
        if(start >= stations[index] - w && start <= stations[index] + w)
        {
            start = stations[index] + w;
            index++;
        }
        else
        {
            start += 2 * w;
            answer++;
        }
        start++;
    }

    return answer;
}
728x90
반응형