π»
[λ°±μ€] μ°μ μμ ν - 11286. μ λκ° ν λ³Έλ¬Έ
[λ°±μ€] μ°μ μμ ν - 11286. μ λκ° ν
λν¨λ 2020. 2. 13. 01:26λ¬Έμ
μ λκ° νμ λ€μκ³Ό κ°μ μ°μ°μ μ§μνλ μλ£κ΅¬μ‘°μ΄λ€.
- λ°°μ΄μ μ μ x (x ≠ 0)λ₯Ό λ£λλ€.
- λ°°μ΄μμ μ λκ°μ΄ κ°μ₯ μμ κ°μ μΆλ ₯νκ³ , κ·Έ κ°μ λ°°μ΄μμ μ κ±°νλ€. μ λκ°μ΄ κ°μ₯ μμ κ°μ΄ μ¬λ¬κ°μΌ λλ, κ°μ₯ μμ μλ₯Ό μΆλ ₯νκ³ , κ·Έ κ°μ λ°°μ΄μμ μ κ±°νλ€.
νλ‘κ·Έλ¨μ μ²μμ λΉμ΄μλ λ°°μ΄μμ μμνκ² λλ€.
μ λ ₯
첫째 μ€μ μ°μ°μ κ°μ N(1≤N≤100,000)μ΄ μ£Όμ΄μ§λ€. λ€μ Nκ°μ μ€μλ μ°μ°μ λν μ 보λ₯Ό λνλ΄λ μ μ xκ° μ£Όμ΄μ§λ€. λ§μ½ xκ° 0μ΄ μλλΌλ©΄ λ°°μ΄μ xλΌλ κ°μ λ£λ(μΆκ°νλ) μ°μ°μ΄κ³ , xκ° 0μ΄λΌλ©΄ λ°°μ΄μμ μ λκ°μ΄ κ°μ₯ μμ κ°μ μΆλ ₯νκ³ κ·Έ κ°μ λ°°μ΄μμ μ κ±°νλ κ²½μ°μ΄λ€. μ λ ₯λλ μ μλ -231λ³΄λ€ ν¬κ³ , 231λ³΄λ€ μλ€.
μΆλ ₯
μ λ ₯μμ 0μ΄ μ£Όμ΄μ§ νμλ§νΌ λ΅μ μΆλ ₯νλ€. λ§μ½ λ°°μ΄μ΄ λΉμ΄ μλ κ²½μ°μΈλ° μ λκ°μ΄ κ°μ₯ μμ κ°μ μΆλ ₯νλΌκ³ ν κ²½μ°μλ 0μ μΆλ ₯νλ©΄ λλ€.
μμ μ λ ₯1
18
1
-1
0
0
0
1
1
-1
-1
2
-2
0
0
0
0
0
0
0
μμ μΆλ ₯1
-1
1
0
-1
-1
1
1
-2
2
0
μκ°
β» μ°μ μμ ν
μ°μ μμ ν μ€ μ΅λκ°μ λ΄λλ κ²μ Max Heap(λ΄λ¦Όμ°¨μ), μ΅μκ°μ λ΄λλ κ²μ Min Heap(μ€λ¦μ°¨μ)μ΄λΌκ³ λΆλ₯Έλ€.
Max Heapμ μ¬μ©ν λ
1. priority_queue< int, vector<int> > pq;
2. priority_queue< int, vector<int>, less<int> > pq;
3. priority_queue< pair<int, int> > pq;
Min Heapμ μ¬μ©ν λ
1. priority_queue< int, vector<int> > pq; push(-x) & -top() κ°μ΄ μ¬μ© ν μμλ€.
2. priority_queue< int, vector<int>, greater<int> > pq;
3. priority_queue< pair<int, int> > pq;λ₯Ό μ°κ³ push(-x) & -top() λ‘ μ¬μ©νλ€.
*pair<a, b>μΌ λ, aμ κ°μ΄ κ°λ€λ©΄ bμ κ°μ λ°λΌ μ°μ μμκ° κ²°μ λλ€.
*push()λ pop()μ ν λμ μκ°λ³΅μ‘λλ logNμ΄λ€.
μμ±ν μ½λ
#include <iostream>
#include <algorithm>
#include <queue>
#include <cstdlib>
#define MAX 10000
using namespace std;
int n, x;
int main(int argc, const char * argv[]) {
// insert code here...
ios_base::sync_with_stdio(false);
cin.tie(0);
priority_queue<pair<int, int> > pq;
cin >> n;
for(int i=0; i<n; i++) {
cin >> x;
if(x==0){
if(pq.empty()){ //λΉμμΌλ©΄ 0 μΆλ ₯
cout << 0 << "\n";
}else{
cout << -pq.top().second <<"\n"; // pairμ΄λ―λ‘ λλ²μ§Έκ°μ΄ μ°Ύκ³ μνλ
pq.pop();
}
}else{
pq.push({-abs(x), -x});
}
}
return 0;
}
'μκ³ λ¦¬μ¦ > λ¬Έμ νμ΄ Baekjoon' μΉ΄ν κ³ λ¦¬μ λ€λ₯Έ κΈ
[λ°±μ€] 그리λ - 1202. 보μλλ (0) | 2020.02.13 |
---|---|
[λ°±μ€] DFSμBFS - 2606. λ°μ΄λ¬μ€ (0) | 2020.02.13 |
[λ°±μ€] λΆν μ 볡 - 1992. μΏΌλνΈλ¦¬(λ¬Έμ νΈλμ€) (0) | 2020.02.12 |
[λ°±μ€] λΆν μ 볡 - 1654. λμ μλ₯΄κΈ° (0) | 2020.02.12 |
[λ°±μ€] 그리λ - 11399. ATM (0) | 2020.02.12 |