728x90
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
예시 그림에서 나온 거 처럼

회색 영역(기지국의 전파가 전단 될 수 없는 영역)의 크기를
배열로 저장했다.
그리고 전파가 전달될 수 있는 최대 단위( ex. w = 1 , 3)로
나누어 올림 해주었다.
올림 해주는 이유는
빈공간이 있다면 최소한 하나는 해야되고
무조건 다 채워줘야하기때문에 했다.
#include <iostream>
#include <vector>
#include <cmath>
using namespace std;
int solution(int n, vector<int> stations, int w)
{
int answer = 0;
vector<int> build;
int last = 1;
for(int i=0;i<stations.size();i++){
int pos = stations[i];
if((pos - w) - last > 0){
build.push_back((pos - w) - last);
}
last = pos + w + 1;
}
if(last <= n){
build.push_back((n+1) - last);
}
for(int i=0;i<build.size();i++){
answer += ceil((double)build[i]/(double)(2*w+1));
}
return answer;
}

728x90
'문제 > 프로그래머스' 카테고리의 다른 글
c++ 프로그래머스_"괄호 회전하기" (0) | 2023.06.15 |
---|---|
c++ 프로그래머스_"위장" (0) | 2023.06.15 |
c++ 프로그래머스_"N으로 표현" (0) | 2023.06.13 |
c++ 프로그래머스_"큰 수 만들기" (0) | 2023.06.13 |
c++ 프로그래머스_"방문 길이" (0) | 2023.06.13 |