중요 지식
multiset - 중복된 값을 포함하며, 자동적으로 정렬이 돼서 문제에 적합하다
코드
#include <iostream>
#include <set>
using namespace std;
int main(){
int T, N;
multiset<long long> multiSet;
cin >> T;
for(int i = 0; i < T; i++){
multiSet.clear();
cin >> N;
for(int j = 0; j < N; j++){
char x;
long long y;
cin.ignore(10, '\n');
scanf("%c %lld", &x, &y);
if(x == 'I'){
multiSet.insert(y);
}
else if(!multiSet.empty()){
if(y == 1)
multiSet.erase(--multiSet.end());
else
multiSet.erase(multiSet.begin());
}
}
if(!multiSet.empty()){
long long max = *--multiSet.end();
long long min = *multiSet.begin();
printf("%lld %lld\n", max, min);
}
else
printf("EMPTY\n");
}
return 0;
}
풀이
자료구조 set을 사용하면 쉽게 풀 수 있다
'프로그래밍 문제집 > 백준' 카테고리의 다른 글
[KOI 1996 초등부] 2667번-단지번호붙이기 (0) | 2022.02.23 |
---|---|
1676번-팩토리얼 (미완성) (0) | 2022.02.14 |
1927번-최소 힙 (0) | 2022.02.11 |
1541번-잃어버린 괄호 (0) | 2022.02.09 |
1389번: 케빈 베이컨의 6단계 법칙 (0) | 2022.02.09 |