
import sys
n = int(sys.stdin.readline())
log = {}
for _ in range(n):
name, status = sys.stdin.readline().split()
if name in log:
log.update({name: status})
else:
log[name] = status
result = []
for key, value in log.items():
if value == 'enter':
result.append(key)
result = reversed(sorted(result))
for x in result:
print(x)
코드 설명
우선 딕셔너리 log에 직원의 이름을 key값으로, 직원의 출근 상태는 value값으로 입력한다.
만약 직원의 이름이 이미 딕셔너리에 있는 경우엔 해당 직원의 이름에 매칭되어있는 value값을 지금 입력된 값으로 갱신한다. 그렇지 않다면, 딕셔너리에 이름-상태 쌍을 추가로 넣어주면 된다.
출력할 결과값을 저장할 result 리스트를 선언한다.
딕셔너리 log에 들어있는 key값과 value값에 대해 만약 value값이 'enter'라면 그것에 매칭되어있는 key값을 리스트에 넣어준다.
문제에서 현재 회사에 있는 사람의 이름을 사전의 역순으로 출력하라고 하였으므로 sorted()를 사용하여 정렬한 다음 reversed()를 사용하여 역순으로 배열해준다. 그런 다음 한 줄에 하나씩 출력한다.