이중우선순위큐(통과되는 오답)

고장난·2021년 6월 13일
0

코딩스터디(오답)

목록 보기
6/9
#include <string>
#include <vector>
#include <queue>
using namespace std;

vector<int> solution(vector<string> operations) {
    vector<int> answer;
    priority_queue<int,vector<int>,greater<int>> upup;
    priority_queue<int,vector<int>,less<int>> dodo;
    queue<int> mid;
    string temp;
    int k=0,d=0;
    for(int i=0;i<operations.size();i++){
        if(k==d){
            upup={};
            dodo={};
        }
        if(operations[i][0]=='I'){
            temp=operations[i].substr(2);
            upup.push(stoi(temp));
            dodo.push(stoi(temp));
            mid.push(stoi(temp));
            k++;
        }
        else if(operations[i]=="D 1"){
            if(mid.empty()==1){continue;}
            dodo.pop();
            mid.pop();
            d++;
        }
        else {
            if(mid.empty()==1){continue;}
            upup.pop();
            mid.pop();
            d++;
        }
    }
    
    if(k==d){answer.push_back(0);
             answer.push_back(0);
           }
    else{
        answer.push_back(dodo.top());
        answer.push_back(upup.top());
    }
    return answer;
}

정확성 테스트
테스트 1 〉 통과 (0.02ms, 3.96MB)
테스트 2 〉 통과 (0.02ms, 3.95MB)
테스트 3 〉 통과 (0.02ms, 3.84MB)
테스트 4 〉 통과 (0.01ms, 3.93MB)
테스트 5 〉 통과 (0.02ms, 3.9MB)
테스트 6 〉 통과 (0.02ms, 3.94MB)
채점 결과
정확성: 100.0
합계: 100.0 / 100.0

profile
훈련중

0개의 댓글