본문 바로가기

알고리즘 문제풀이/백준

7785번 - 회사에 있는 사람(python3)

문제 링크 : https://www.acmicpc.net/problem/7785

 

7785번: 회사에 있는 사람

문제 상근이는 세계적인 소프트웨어 회사 기글에서 일한다. 이 회사의 가장 큰 특징은 자유로운 출퇴근 시간이다. 따라서, 직원들은 반드시 9시부터 6시까지 회사에 있지 않아도 된다. 각 직원��

www.acmicpc.net

사람 이름과 출퇴근 로그(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)