백준 11286 절댓값 힙
이 문제는, 절댓값을 우선순위 큐 안에 넣는 문제 입니다.
절댓값은 항상 양수죠. 그래서 음수도 양수로 바꿔서 넣어 주어야 합니다.
절댓값이 가장 작은 수부터 출력해야 하므로 최소 힙이고,
pair 를 사용해, 값이 음수로 들어왔으면 -1을 곱한다음 false 로 입력
그 후 출력시엔 false면 -1을 곱한다음 출력 입니다.
소스 코드 :
#include#include #include #include using namespace std; int main() { ios_base::sync_with_stdio(0); cin.tie(0); priority_queue < pair , vector >, greater >> minHeap; int n; cin >> n; for (int i = 0; i < n; i++) { int q; cin >> q; cin.ignore(); if (q == 0) { if (!minHeap.empty()) { if(minHeap.top().second == false) cout << -1 * minHeap.top().first << '\n'; else cout << minHeap.top().first << '\n'; minHeap.pop(); } else { cout << '0' << '\n'; } } else { if(q<0 else="" false="" minheap.push="" pre="" q="" true="">0>
댓글
댓글 쓰기