문제 링크 : https://www.acmicpc.net/problem/7785
사람 이름과 출퇴근 로그(enter, leave)가 주어지면, 현재 누가 남아있는지를 출력하는 문제입니다. 로그에 이름이 있는 사람에 대해 dictionary를 만들고, 출근한 경우에는 출근한 사람의 이름을 key로 하는 key-value pair를 만들어 저장, 퇴근한 경우에는 그 사람이 key로 있는 pair를 삭제합니다. 마지막으로 key에 저장된 모든 사람들의 이름을 sorting 후 출력하면 됩니다.
import sys
n = int(sys.stdin.readline())
lst = []
for _ in range(n):
lst.append(list(map(str, sys.stdin.readline().split())))
log_dict = {}
for log in lst:
if log[1] == 'enter': #출근
log_dict[log[0]] = 1
elif log[1] == 'leave': #퇴근
del log_dict[log[0]]
name = sorted(log_dict.keys(), reverse=True) #현재 회사에 있는 모든 사람
for na in name:
print(na)
'알고리즘 문제풀이 > 백준' 카테고리의 다른 글
2667번 - 단지번호붙이기(python3) (0) | 2020.08.17 |
---|---|
17298번 - 오큰수(python3) (0) | 2020.08.02 |
2493번 - 탑(python3) (0) | 2020.08.02 |
17212번 - 달나라 토끼를 위한 구매대금 지불 도우미(python3) (0) | 2020.08.02 |
12865번 - 평범한 배낭(python3) (0) | 2020.07.30 |