-
카테고리
-
세부 분야
알고리즘 · 자료구조
-
해결 여부
미해결
74.최소힙(우선순위 큐)
21.12.23 20:50 작성 조회수 100
0
#include<stdio.h>
#include<queue>
using namespace std;
int main(){
priority_queue<int> q;
int x;
while(true){
scanf("%d",&x);
if(x==-1) break;
if(x==0&&!q.empty()){
printf("this==%d\n",-q.top());
q.pop();
}
if(x==0&&q.empty()) printf("-1\n");
else q.push(-x);
}
return 0;
저가 작성한 코드를 실행시키면 3 5 2이 아닌 3 0 0이 나옵니다. * input(5 3 6 0 5 0 2 4 0 -1)
하지만 if(x==0&&q.empty()) printf("-1\n"); -> else if(x==0&&q.empty()) printf("-1\n");
로 수정하면 답이 정상적으로 나옵니다.
계속 고민해도 원인을 아직까지 찾지 못해서 도움을 청합니다.
}
답변을 작성해보세요.
답변 0