백준 7785 - 회사에 있는 사람 (Python)

2024. 2. 12. 05:15알고리즘

문제

https://www.acmicpc.net/problem/7785

 

7785번: 회사에 있는 사람

첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는

www.acmicpc.net

풀이

now = {}
for _ in range(int(input())):
    n, c = input().split()
    now[n] = c
answer = [n for n,v in now.items() if v=="enter"]
answer.sort(reverse=True)

for name in answer:
    print(name)

이름을 key로 현재 상태를 value로 하는 딕셔너리를 만들어 준다.

모든 입력을 저장한 뒤 value가 enter인 것만 뽑아내서 answer에 저장한 후 사전의 역순으로 정렬한다.

이후 각 이름을 출력해주면 된다.

 

 

 

사실 처음에 푼 코드는 저거보다 짧았는데, 가독성을 위해서 위의 코드처럼 바꿨다.

#원래 코드
now = {}
for _ in range(int(input())):
    n, c = input().split()
    now[n] = c
print("\n".join(sorted([n for n,v in now.items() if v=="enter"],reverse=True)))