이번 블로그의 주제는 역순회이다문제 설명
위 문제는 간단하게 해결할 수 있다
#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";
출력 방식을 위와같이 역순회를 통해 출력을 하게 되면
역순으로 결과를 얻을 수 있을 뿐더러 더 빠르게 값을 순회할 수 있게 된다.
'C++ 자료구조' 카테고리의 다른 글
| C++ / [25206] unordered_map 활용 (0) | 2024.06.23 |
|---|---|
| C++ / [NYPC] 메이플스토리 새로운 직업 고르기 (0) | 2023.10.30 |
| c++ / Binary Tree, Traversal (0) | 2023.10.19 |
| C++ / min-element (0) | 2023.03.11 |
| C++ / 특징, 입출력, namespace (cpp D+1) (0) | 2023.03.02 |
