일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 팰린드롬 만들기
- baekjoon
- NRVO
- directx
- Unreal Engine5
- 오블완
- 프로그래머스
- GeeksForGeeks
- Programmers
- algorithm
- DirectX11
- C
- const
- UnrealEngine4
- 줄 세우기
- UnrealEngine5
- 백준
- DeferredRendering
- RVO
- IFileDialog
- Frustum
- winapi
- 언리얼엔진5
- 1563
- softeer
- UE5
- 2294
- RootMotion
- C++
- 티스토리챌린지
- Today
- Total
Game Develop
[Algorithm] Programmers :: 선입 선출 스케줄링 본문
https://school.programmers.co.kr/learn/courses/30/lessons/12920
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
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
53
54
|
int solution(int n, vector<int> cores)
{
int left = 0;
int right = 200000;
int mid = 0;
if (n <= cores.size())
{
return n;
}
while (left + 1 < right)
{
int mid = (left + right) / 2;
int workCounts = cores.size();
if (mid > 0)
{
for (int i = 0; i < cores.size(); ++i)
{
workCounts += mid / cores[i];
}
}
if (workCounts < n)
{
left = mid;
}
else
{
right = mid;
}
}
int leftCounts = cores.size();
for (int i = 0; i < cores.size(); ++i)
{
leftCounts += left / cores[i];
}
for (int i = 0; i < cores.size(); ++i)
{
if ( (left+1) % cores[i] == 0)
{
++leftCounts;
}
if (leftCounts == n)
{
return i + 1;
}
}
}
|
cs |
일일이 하나씩 계산하면 시간초과.
그래서 우선순위큐로 매 시간씩 진행하면서 작업완료된것들을 체크하고 갱신시켜주는 식으로 했어도... 시간초과가 나왔다. 솔직히 이건 될 줄 알았는데;; 문제가 요구하는 능력이 다른것임을 깨달았다.
다른 사람의 풀이를 보니까 파라매트릭서치를 사용했다고 하길래, 처음 알게되는 키워드라 해당 기법부터 알아봤다.
문제를 재해석해서 구해야하는 해를 재설정한 다음에, 해당 해를 이분탐색으로 구하는 문제였다.
풀이를 안봤더라면 몇시간을 고민하든 못풀었을 것 같다.
봤던것 중 제일 이해 쉬운 풀이는 아랫글.
https://dev-note-97.tistory.com/173
[프로그래머스] 선입 선출 스케줄링 / Python
문제주소 :programmers.co.kr/learn/courses/30/lessons/12920 코딩테스트 연습 - 선입 선출 스케줄링 처리해야 할 동일한 작업이 n 개가 있고, 이를 처리하기 위한 CPU가 있습니다. 이 CPU는 다음과 같은 특징이
dev-note-97.tistory.com
이분탐색에 대한 글
https://www.acmicpc.net/blog/view/109
이분 탐색(Binary Search) 헷갈리지 않게 구현하기
개요 이분 탐색은 off-by-one error가 발생하기 쉬워서 늘 헷갈립니다. 이분 탐색 문제를 풀다보면 탈출 조건으로 lo <= hi, lo < hi, lo + 1 < hi 중 어느 걸 선택해야 할 지, 정답이 lo인지 hi인지 (lo + hi) / 2
www.acmicpc.net
이번 문제덕분에 새로운 영역을 조금 확장했다.
'Algorithm > Programmers' 카테고리의 다른 글
[Algorithm] Programmers :: 야근 지수 (0) | 2023.04.21 |
---|---|
[Algorithm] Programmers :: 리틀 프렌즈 사천성 (0) | 2023.04.20 |
[Algorithm] Programmers :: 옹알이(1) (0) | 2023.03.28 |
[Algorithm] Programmers :: 거스름돈 (0) | 2023.03.25 |
[Algorithm] Programmers :: 등굣길 (0) | 2023.03.22 |