-
[7785] 회사에 있는 사람BOJ 2021. 10. 9. 21:53
https://www.acmicpc.net/problem/7785
7785번: 회사에 있는 사람
첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는
www.acmicpc.net
<문제>
set을 사용하여 구현했다.
enter인 경우에는 set.insert(), leave인 경우에는 set.erase()로 구현이 가능하며
사전순의 역순으로 출력해야 하므로 내림차순으로 set을 선언해주었다.
n줄로 된 쿼리가 끝나면, set을 순회하며 출력해주면 회사에 남아있는 사람을 찾을 수 있다.
<소스코드>
123456789101112131415161718192021#include <bits/stdc++.h>using namespace std;set<string, greater<string>> s;int n;int main(void) {cin >> n;int i;for (i = 0; i < n; i++) {string name, op;cin >> name >> op;if (op == "enter") {s.insert(name);} else {s.erase(name);}}for (auto& x : s) {cout << x << '\n';}return 0;}cs 'BOJ' 카테고리의 다른 글
[22857] 가장 긴 짝수 연속한 부분 수열 (small) (0) 2021.10.11 [17071] 숨바꼭질 5 (0) 2021.10.11 [1062] 가르침 (0) 2021.10.09 [9184] 신나는 함수 실행 (0) 2021.10.08 [14456] Hoof, Paper, Scissors (Bronze) (0) 2021.10.08