백준 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)))