[BOJ] C++ 7785 회사에 있는 사람 - 해시 사용해보기
2023. 8. 24. 21:55ㆍ알고리즘/문제풀이
예제
4
Baha enter
Askar enter
Baha leave
Artem enter
ans :
Askar
Artem
이름이라는 단일 데이터에 대해 빈번한 삽입, 검색, 삭제가 일어나므로 해시 셋이나 셋 자료구조를 사용하면 편하다. 출력 부분을 보면, 사전의 역순으로 출력하는 부분이 있으니 셋 stl을 이용해서 구현했다. 딱히 예외처리 할 부분도 없고 편한 문제다.
/** 해시 7785 회사에 있는 사람 **/
#include <iostream>
#include <vector>
#include <set>
#include <algorithm>
using namespace std;
int main()
{
ios_base::sync_with_stdio(0);
cin.tie(0);
int N;
cin >> N;
set<string, greater<string>> s;
for (int i = 0; i < N; i++)
{
string name, status;
cin >> name >> status;
if (status == "enter")
{
s.insert(name);
}
else
{
if (s.find(name) != s.end())
s.erase(name);
}
}
for (auto x : s)
cout << x << "\n";
}
'알고리즘 > 문제풀이' 카테고리의 다른 글
[BOJ] C++ 5052 전화번호 목록 - 문자열과 정렬 (1) | 2023.09.07 |
---|---|
[BOJ] C++ 9935 문자열 폭발 (0) | 2023.09.06 |
[BOJ] C++ 5430 AC - 부분 문자열 찾기 (1) | 2023.08.22 |
[CodeForces] C. Registration system - 해시 테이블 구현 (0) | 2023.08.20 |
[BOJ] C++ 2493 탑 - 스택을 써야하는 경우 (0) | 2023.08.18 |