기지국 설치

108번뇌·2021년 10월 20일
0

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

이 문제 풀이는 짧은데 못풀었다.

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

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

	int start(1);
	int idx(0);

	while (start <= n)
	{
		
			if (idx <= stations.size()-1 && start >= stations[idx] - w && start <= stations[idx] + w)
			{
				start = stations[idx] + w;//끝으로맞추고
				start++;
				idx++;
			}
			else
			{
				answer++;
				start += 2 * w+1;
			}
	}

	return answer;
}



int main(void)
{ 
	int N = 11;
	vector<int> vTemp = { 4, 11 };
	int w = 1;

	int rst = solution(N,vTemp,w);
	return 0; 
}
  1. 만약 기지국 표시된것들 바운더리 내에 있다면, start위치를 표시된것 제일 마지막으로 옮기고 새롭게 시작
  2. 만약 기지국 바운더리 내에 없다면 w, 기지국 ,w를 위해 start+=2w를 해주고 새롭게 시작 start++
    아이디어 요하는 문제들 잘 못푸는 상태.
profile
내일 아침 눈을 떳을 때, '기대되는 오늘 하루를 만들기 위해' 나는 오늘도 생각하고 고민한다.

0개의 댓글