Computer Science/Algorithm Problem
백준] 7785 - 회사에 있는 사람(KBTU)
TwinParadox
2018. 2. 3. 17:12
728x90
시간 제한 : 1초
메모리 제한 : 128MB
입력
첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는 출근, "leave"인 경우는 퇴근이다.
회사에는 동명이인이 없으며, 대소문자가 다른 경우에는 다른 이름이다.
출력
현재 회사에 있는 사람의 이름을 사전 순의 역순으로 한 줄에 한 명씩 출력한다.
소스코드
#include <iostream> #include <string> #include <map> #include <functional> #include <algorithm> using namespace std; int main(void) { int n; map<string, bool, greater<string> > list; cin >> n; while (n--) { string name, op; cin >> name >> op; if (op == "enter") list[name] = true; else list[name] = false; } for (map<string, bool, greater<string> >::iterator it = list.begin(); it != list.end(); it++) if (it->second == true) cout << it->first << '\n'; }
Tip
동명이인이 없는 상태에서 여러 사람들의 근무 상황을 입력받는다. map 자료구조를 사용하면 적절히 처리할 수 있다.
728x90