강의

멘토링

커뮤니티

인프런 커뮤니티 질문&답변

코딩테스트합격하자님의 프로필 이미지
코딩테스트합격하자

작성한 질문수

it 취업을 위한 알고리즘 문제풀이 입문 (with C/C++) : 코딩테스트 대비

74.최소힙(우선순위 큐)

작성

·

177

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");

로 수정하면 답이 정상적으로 나옵니다.

계속 고민해도 원인을 아직까지 찾지 못해서 도움을 청합니다.

 

}

답변

답변을 기다리고 있는 질문이에요
첫번째 답변을 남겨보세요!
코딩테스트합격하자님의 프로필 이미지
코딩테스트합격하자

작성한 질문수

질문하기