C++ / [7785] Set 활용 / 역순회

DEV주녁 ㅣ 2023. 11. 1. 15:05

이번 블로그의 주제는 역순회이다
문제 설명

 

위 문제는 간단하게 해결할 수 있다

#include <iostream>  
#include <string>
#include <set>

using namespace std;

int main() 
{
    ios::sync_with_stdio(false);

    int n;
    cin >> n;
    set<string> s;

    for (int i = 0; i < n; i++) 
    {
        string name, el;
        cin >> name >> el;

        if (el == "enter")
            s.insert(name);
        else
            s.erase(name);
    }

    for (auto iter : s)
    	cout << s << '\n';

    return 0;
}

위 코드와 같이 처음 작성했을 때 문제점을 찾지 못했다.

하지만 출력을 사전의 역순으로 해야헀다.

그렇게 생각해낸 방법이 역순 정렬이었다.

(그치만 역순 정렬로 하게 될 경우 시간초과)

여기서 사용하게 된 방법이 바로 역순회이다.

for (auto iter = s.rbegin(); iter != s.rend(); iter++)
        cout << *iter << "\n";

출력 방식을 위와같이 역순회를 통해 출력을 하게 되면

역순으로 결과를 얻을 수 있을 뿐더러 더 빠르게 값을 순회할 수 있게 된다.