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
- baekjoon
- 백준
- 줄 세우기
- winapi
- algorithm
- C++
- directx
- GeeksForGeeks
- IFileDialog
- Unreal Engine5
- RVO
- 1563
- UnrealEngine5
- 2294
- softeer
- UnrealEngine4
- Frustum
- UE5
- 팰린드롬 만들기
- DeferredRendering
- RootMotion
- NRVO
- 프로그래머스
- 티스토리챌린지
- DirectX11
- const
- Programmers
- 오블완
- C
- 언리얼엔진5
Archives
- Today
- Total
Game Develop
[Algorithm] Programmers :: 야근 지수 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12927
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
47
48
49
50
51
52
|
struct Node
{
int num;
};
struct cmp
{
bool operator() (const Node& a, const Node& b)
{
return a.num < b.num;
}
};
long long solution(int n, vector<int> works)
{
long long answer = 0;
long long sum = 0;
for (int i = 0; i < works.size(); ++i)
{
sum += works[i];
}
if (sum <= n) return 0;
priority_queue<Node, vector<Node>, cmp> pq;
for (int i = 0; i < works.size(); ++i)
{
pq.push({ works[i] });
}
while (n > 0)
{
--n;
int temp = pq.top().num;
pq.pop();
if (temp-1 == 0) continue;
pq.push({ temp-1 });
}
while (!pq.empty())
{
answer += pq.top().num * pq.top().num;
pq.pop();
}
int asdf = 0;
return answer;
}
|
cs |
역대 푼 3레벨 짜리 중 가장 최단시간에 풀지 않았나...라고 생각하는 문제다.
이 문제는 각 원소의 제곱을 더했을 때 어떤 경우에 가장 값이 낮은가?를 생각해야 하는데,
일단 허용되는한, 반드시 제일 큰값에서 하나씩 빼야 한다.
제곱이기 때문에 다른 곳에서 아무리 커버치려고 해도 제일 큰 수의 제곱만큼 값을 커버칠 수 없다.
그렇기 때문에 우선순위큐를 활용해서 잔여시간이 제일 많은 값을 top으로 오게 하여, n번만큼 값을 1씩 빼주고 다시 큐에 넣어주는 작업을 했다.
이 과정을 통해 각각의 각들이 평균값을 향하여 평탄화작업이 되기 때문에 최소의 값을 구할 수 있다.
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] Programmers :: 입국심사 (0) | 2023.05.20 |
---|---|
[Algorithm] Programmers :: 캠핑 (1) | 2023.04.22 |
[Algorithm] Programmers :: 리틀 프렌즈 사천성 (0) | 2023.04.20 |
[Algorithm] Programmers :: 선입 선출 스케줄링 (0) | 2023.04.19 |
[Algorithm] Programmers :: 옹알이(1) (0) | 2023.03.28 |