-
가운데를 말해요 - 1655Algorithm/BOJ 2020. 3. 19. 20:2912345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152//1655 - 가운데를 말해요#include <iostream>#include <queue>using namespace std;int N;priority_queue<int> hq, tq;void init(){hq = tq = priority_queue<int>();cin >> N;}int main(){ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);init();int x;int ht, tt, hsize, tsize;cin >> x, hq.push(x);cout << x << "\n";for(int i = 1; i<N; ++i){cin >> x;if(hq.size() > tq.size()){if(hq.top() <= x)tq.push(-x);else{tq.push(-hq.top());hq.pop();hq.push(x);}}else{if(-tq.top() >= x)hq.push(x);else{hq.push(-tq.top());tq.pop();tq.push(-x);}}cout << hq.top() << "\n";}}
cs https://www.acmicpc.net/problem/1655
1655번: 가운데를 말해요
첫째 줄에는 수빈이가 외치는 정수의 개수 N이 주어진다. N은 1보다 크거나 같고, 100,000보다 작거나 같은 자연수이다. 그 다음 N줄에 걸쳐서 수빈이가 외치는 정수가 차례대로 주어진다. 정수는 -10,000보다 크거나 같고, 10,000보다 작거나 같다.
www.acmicpc.net
가운데를 말해요
우선순위큐를 두개 만들었습니다.
하나는 숫자가 큰것이 우선순위가 높게 설정했고, --> hq
하나는 숫자가 작은것을 우선순위가 높게 설정했습니다. --> tq
hq의 원소의 개수는 tq와 같거나 하나 많은 경우만 가능하고, hq에는 비교적 작은얘들, tq에는 큰 얘들이 들어가게 유지했습니다.
'Algorithm > BOJ' 카테고리의 다른 글
YouTube - 3117 (0) 2020.03.20 Scoring Hack - 17234 (0) 2020.03.20 교환 - 1039 (0) 2020.03.19 금강석 - 2496 (0) 2020.03.19 보석 - 2492 (0) 2020.03.19