레야몬
[C++] 1700번 멀티탭 스케줄링 - 그리디 본문
1. 문제
- 생략
2. 재정의
- 생략
3. 실수한 점, 개선할 점
- 생략
4. 해결 방법
- 생략
<코드>
#include <iostream>
#include <vector>
#include <queue>
using namespace std;
const int MAX_K = 101;
const int MAX_N = 101;
const int INF = 987654321;
int N, K;
vector<queue<int>> elec(MAX_K);
int order[MAX_K];
int chg[MAX_N];
void input() {
cin >> N >> K;
for(int i=0; i<K; i++) {
cin >> order[i];
elec[order[i]].push(i);
}
for(int i=1; i<MAX_K; i++)
elec[i].push(INF);
}
void solve() {
int res = 0;
for(int i=0; i<K; i++) {
int now = order[i];
bool flag = false;
int M = 0;
int M_value = -2;
for(auto x: chg)
if(x == now)
flag = true;
for(int j=0; j<N; j++) {
if(elec[chg[j]].empty()) {
M = j;
break;
}
if(M_value < elec[chg[j]].front()) {
M = j;
M_value = elec[chg[j]].front();
}
}
elec[now].pop();
if(flag)
continue;
else {
if(chg[M])
res++;
chg[M] = now;
}
}
cout << res;
}
int main() {
ios_base::sync_with_stdio(0);
cin.tie(0); cout.tie(0);
input();
solve();
return 0;
}
<문제 바로가기>
https://www.acmicpc.net/problem/1700
1700번: 멀티탭 스케줄링
기숙사에서 살고 있는 준규는 한 개의 멀티탭을 이용하고 있다. 준규는 키보드, 헤어드라이기, 핸드폰 충전기, 디지털 카메라 충전기 등 여러 개의 전기용품을 사용하면서 어쩔 수 없이 각종 전
www.acmicpc.net
'알고리즘 > 백준' 카테고리의 다른 글
[C++] 27848번 Moo Route II - 자료 구조, 그리디, 정렬, 너비 우선 탐색 (1) | 2024.01.19 |
---|---|
[C++] 13804번 Road Construction - 데이크스트라, 그리디 (0) | 2024.01.18 |
[C++] 2336번 굉장한 학생 - 자료 구조, 세그먼트 트리 (1) | 2023.10.19 |
[C++] 2419번 사수아탕 - DP (1) | 2023.10.19 |
[C++] 4008번 특공대 - DP, 볼록 껍질을 이용한 최적화, 누적 합 (0) | 2023.10.15 |
Comments