[백준/BOJ] 백준 21773번 : 가희와 프로세스 1
2022. 2. 2. 23:18ㆍ알고리즘 문제풀이
https://www.acmicpc.net/problem/21773
우선순위 큐를 사용하여 문제를 해결했고, 해당 프로세스를 제외한 나머지 프로세스의 우선순위가 1 상승하는 것을, 해당 프로세스의 우선순위가 1 감소하는 것으로 했다
코드
#include <iostream>
#include <vector>
#include <algorithm>
#include <tuple>
#include <queue>
using namespace std;
int t, n;
priority_queue<tuple<int, int, int>> pq; //(우선순위, -id, 남은 시간)
int main()
{
cin.tie(NULL);
ios_base::sync_with_stdio(false);
cin >> t >> n;
for (int i = 0; i < n; i++)
{
int a, b, c;
cin >> a >> b >> c;
pq.push(make_tuple(c, -a, b));
}
for (int i = 0; i < t; i++)
{
int value = get<0>(pq.top());
int id = -get<1>(pq.top());
int remain = get<2>(pq.top());
pq.pop();
cout << id << "\n";
remain--; //남은시간 감소
//프로세스의 남은시간이 0보다 클때
if (remain > 0)
pq.push(make_tuple(value - 1, -id, remain)); //해당 프로세스를 제외한 나머지 우선순위가 1상승하는것을, 해당 프로세스의 우선순위가 1 감소하는것으로 했다
}
return 0;
}
'알고리즘 문제풀이' 카테고리의 다른 글
[백준/BOJ] 백준 21776번 : 가희와 읽기 쓰기 놀이 (0) | 2022.02.05 |
---|---|
[백준/BOJ] 백준 21775번 : 가희와 자원 놀이 (0) | 2022.02.02 |
[백준/BOJ] 백준 21774번 : 가희와 로그 파일 (0) | 2022.02.02 |
[백준/BOJ] 백준 21772번 : 가희의 고구마 먹방 (0) | 2022.02.02 |
[백준/BOJ] 백준 22236번 : 가희와 비행기 (0) | 2022.02.02 |