Set, Multiset

‍박제형·2022년 12월 7일
0
post-thumbnail

백준 7662, '이중 우선순위 큐'
https://www.acmicpc.net/problem/7662

시도 : 우선순위 큐 -> 덱 -> 우선순위 큐 두개
=> 시간 초과

알아보니, set이라는 STL이 있었고 그 중 multiset을 사용하여 풀 수 있다는 것을 알게됨

  • set은 중복을 없애고, 입력할 때 정렬이 되어서 입력되는 것이 특징

  • multiset은 중복을 허용하고 나머지는 정렬과 같다.

  • 정렬 기준 default는 오름차순이고, 기준을 바꾸고자 할 때는 priority queue의 방법과 마찬가지로 할 수 있다.

    #include <set>
    
    #선언
    set <int> s1 # 중복 없애고 정렬(default : 오름차순)
    multiset<int> s2 # 중복 허용 정렬(default : 오름차순)
    set<int, greater<int>> s3 // 내림차순 정렬
  • insert : 삽입
  • clear : 모든 원소 삭제
  • begin() : 첫 시작점 리턴값 iterator
  • end() : 끝 점 리턴값 iterator
  • erase(iter) : iter 값 삭제
  • count(k) : k의 원소 개수 반환
  • size() : 모든 원소의 개수 반환

ex. 최대값 제거

auto iter = s.end();
iter--;
s.erase(iter);

ex. 최대값 출력

auto iter = s.end();
iter--;
cout << *iter;
profile
🚘 Kookmin University, Department of Automobile and IT Convergence

0개의 댓글