# 통과코드
import sys
n = int(sys.stdin.readline())
name_list = {} # 이름을 담아줄 딕셔너리
result = '' # 결과를 한번에 출력해주기 위해 문자열 변수 선언
for i in range(n):
name, state = sys.stdin.readline().split()
if state == 'enter': # 출근했다면 딕셔너리에 추가
name_list[name] = state
else: # 퇴근했다면 딕셔너리에서 삭제
del name_list[name]
for i in sorted(name_list.keys(), reverse=True): # 딕셔너리에서 key만 추출, 역순으로 정렬
result += i + '\n'
print(result)
https://www.acmicpc.net/problem/7785
7785번: 회사에 있는 사람
첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는
www.acmicpc.net
'study > Algorithm' 카테고리의 다른 글
[백준] 파이썬 11478번 : 서로 다른 부분 문자열의 개수 (0) | 2024.03.28 |
---|---|
[백준] 파이썬 20291번 : 파일 정리 (0) | 2024.03.28 |
[백준] 파이썬 1546번 : 평균 (0) | 2024.03.28 |
[백준] 파이썬 1157번 : 단어 공부 (0) | 2024.03.28 |
[백준] 파이썬 2908번 : 상수 (0) | 2024.03.28 |