Notice
Recent Posts
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- algorithm
- DirectX11
- 언리얼엔진5
- C
- RVO
- softeer
- Programmers
- Frustum
- C++
- 오블완
- GeeksForGeeks
- 프로그래머스
- 줄 세우기
- UnrealEngine5
- 팰린드롬 만들기
- UnrealEngine4
- 2294
- 1563
- baekjoon
- directx
- Unreal Engine5
- RootMotion
- IFileDialog
- 티스토리챌린지
- DeferredRendering
- winapi
- const
- UE5
- 백준
- NRVO
Archives
- Today
- Total
Game Develop
[Algorithm] Programmers :: 기지국 설치 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12979
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
|
struct Node
{
int start;
int end;
};
int solution(int n, vector<int> stations, int w)
{
float answer = 0;
vector<Node> usedFragments;
float prevMax = 0;
for (int i = 0; i < stations.size(); ++i)
{
int cur = stations[i];
int start = cur - w < 1 ? 0 : cur - w;
int end = cur + w > n ? n : cur + w;
usedFragments.push_back({ start,end });
}
for (int i = 0; i < usedFragments.size(); ++i)
{
if (usedFragments[i].start - prevMax > 1) // 1개이상의 조각이 있으면
{
float fragmentSize = usedFragments[i].start - prevMax - 1;
if (fragmentSize > 0)
{
answer += ceil(fragmentSize / (2 * w + 1));
}
}
prevMax = usedFragments[i].end;
}
if (n - prevMax > 0)
{
answer += ceil((n - prevMax) / (2 * w + 1));
}
return answer;
}
|
cs |
N이 20억이라 당연히 완전탐색처럼 하려하면 안된다.
주어진 stations를 기반으로 기지국이 설치안된 구간의 크기를 구해서 기지국을 몇개 설치해야하는지를 알아야하는 문제이다.
이전에 설치된 범위의 최대값을 계속 들고 있는 상태에서, 현재 기지국 범위의 시작값과의 차를 이용해서 설치안된 구간의 크기를 구하고, 그 크기를 기지국범위만큼 나눠서 설치개수를 구하면 된다.
헷갈리지 말아야할 것은, 기지국범위가 4이고 설치안된구간의 크기가 5라면 2개를 설치해야한다는 것이다.
그걸 표현하기위해서 그냥 반올림해서 answer에 누적시켰다.
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] Programmers :: 외벽 점검 (0) | 2023.07.06 |
---|---|
[Algorithm] Programmers :: 자물쇠와 열쇠 (0) | 2023.07.01 |
[Algorithm] Programmers :: 스티커 모으기(2) (0) | 2023.06.27 |
[Algorithm] Programmers :: 두 원 사이의 정수 쌍 (0) | 2023.06.26 |
[Algorithm] Programmers :: 연속된 부분 수열의 합 (0) | 2023.06.26 |