문제 링크 

 

중복 원소를 오름차순으로 저장하는 multiset 으로 풀었다.  

원소를 지우기 전에, 사이즈를 꼭 체크하도록 하자..

다시 풀어볼 문제. 

 

"맞았습니다" 코드 링크 

#include <bits/stdc++.h>
using namespace std;

int T, k, n;
char ch;

void solve(){

  multiset<int> ms;
  cin >> k;

  while(k--){
    cin >> ch >> n;
    if(ch == 'I') ms.insert(n);
    else if(ms.size() > 0){
      if(n > 0){ // 최댓값 삭제
        auto iter = ms.end();
        ms.erase(--iter);
      }else ms.erase(ms.begin());
    }
  }

  if(ms.size() == 0) cout << "EMPTY\n";
  else {
    auto iter = ms.end();  --iter;
    cout << *iter << ' ' << *ms.begin() << '\n';
  }
  return;
}
int main(void) {
  ios::sync_with_stdio(0);
  cin.tie(0);

  cin >> T;
  while(T--){
    solve();
  }
  return 0;
}

 

multiset reference 

multiset 정리 포스팅 

728x90

'알고리즘 > 백준' 카테고리의 다른 글

동전 0 백준 11047번 c++  (0) 2022.02.24
절댓값 힙 백준 11286번 c++  (0) 2022.02.24
Z 백준 1074번 c++  (0) 2022.02.23
경로 찾기 백준 11403번 c++  (0) 2022.02.23
다리 놓기 백준 1010번 c++  (0) 2022.02.23

+ Recent posts