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()
를 사용하여 역순으로 배열해준다. 그런 다음 한 줄에 하나씩 출력한다.