문제 URL : https://school.programmers.co.kr/learn/courses/15008/lessons/121686
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
믄제 접근법 : pq를 이용하는 문제입니다.
저는 점수를 기준으로 정렬을해야하고 그다음 호출 기준으로 정렬을해야합니다.
꺼내서 실행시간을 전부 더하면되는데 실행시간끝나고도 호출이 매우 늦어지는 경우도 고려 해야하기
때문에 pq를 2개를 이용했습니다.
소스코드:
#include<bits/stdc++.h>
using namespace std;
#define ll long long
vector<long long> solution(vector<vector<int>> program) {
vector<long long> answer(11);
priority_queue<tuple<ll,ll,ll>,vector<tuple<ll,ll,ll>>,greater<tuple<ll,ll,ll>>>pq1,pq2;
for(vector<int> &p : program){
pq1.push({p[1],p[0],p[2]});
}
ll t1,t2,score1;
ll t3,t4 ,score2;
tie(t1,score1,t2)=pq1.top();//호출 ,점수, 실행
pq1.pop();
pq2.push({score1,t1,t2});
ll cur=t1;
while(!pq2.empty()){
tie(score2,t3,t4)=pq2.top();
pq2.pop();
answer[score2]+=cur-t3;
cur+=t4;
while(!pq1.empty()){
tie(t1,score1,t2) = pq1.top();
if(cur>=t1){
pq1.pop();
pq2.push({score1,t1,t2});
}
else if (pq2.empty()&&cur<t1){
cur=t1;
}
else{
break;
}
}
}
answer[0]=cur;
return answer;
}
궁금한점 혹은 모르는점 어떤질문이든 댓글은 언제나 환영입니다.
'프로그래머스' 카테고리의 다른 글
프로그래머스 pccp 모의고사 2-2 신입사원 교육 (0) | 2024.12.01 |
---|---|
프로그래머스 pccp 모의고사 2-1 실습용 로봇 (0) | 2024.12.01 |
프로그래머스 pccp 모의고사 1-3 유전법칙 (0) | 2024.12.01 |
프로그래머스 pccp 모의고사 1-2 체육대회 (0) | 2024.12.01 |
프로그래머스 pccp 모의고사 1-1 외톨이 알파벳 (0) | 2024.12.01 |