지우너

[코드트리] treeset 기본 C++ 본문

Problem Solving

[코드트리] treeset 기본 C++

지옹 2024. 8. 2. 20:03

문제

https://www.codetree.ai/missions/8/problems/treeset-basic?&utm_source=clipboard&utm_medium=text

 

코드트리 | 코딩테스트 준비를 위한 알고리즘 정석

국가대표가 만든 코딩 공부의 가이드북 코딩 왕초보부터 꿈의 직장 코테 합격까지, 국가대표가 엄선한 커리큘럼으로 준비해보세요.

www.codetree.ai

 

풀이

treeset은 기본적으로 오름차순으로 정렬됨

#include <iostream>
#include <set>

using namespace std;

set<int> s;

int main() {
    int n;
    cin >> n;
    while(n--){
        string command;
        cin >> command;
        if(command=="add"){
            int num;
            cin >> num;
            s.insert(num);
        }
        if(command=="remove"){
            int num;
            cin >> num;
            s.erase(num);
        }
        if(command=="find"){
            int num;
            cin >> num;
            if(s.find(num)!=s.end()) cout << "true\n";
            else cout << "false\n";
        }
        if(command=="lower_bound"){
            int num;
            cin >> num;
            if(s.lower_bound(num)!=s.end()) cout << *s.lower_bound(num) << '\n';
            else cout << "None\n";
        }
        if(command=="upper_bound"){
            int num;
            cin >> num;
            if(s.upper_bound(num)!=s.end()) cout << *s.upper_bound(num) << '\n';
            else cout << "None\n";
        }
        if(command=="largest"){
            if(s.empty()) cout << "None\n";
            else cout << *s.rbegin() << '\n';
        }
        if(command=="smallest"){
            if(s.empty()) cout << "None\n";
            else cout << *s.begin() <<'\n';
        }

    }
    return 0;
}