[파이썬/python] 백준 7785번 : 회사에 있는 사람(🥈5)

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

import sys
input = sys.stdin.readline

people_list = {}

for i in range(int(input())):
    a,b = map(str,input().split())
    if b != "leave":
        people_list[a] = b
    else:
        del people_list[a]

people_list = sorted(people_list.keys(), reverse=True)
print(*people_list, sep="\n")

사전 순이라고 해서 A a B b 이런 순으로 정렬해야 하는 줄 알았는데 아스키코드 순으로 정렬하면 되는 거였다..그래서 그냥 reverse=True를 설정해 주면 되었다.

예제가 너무 적어서 헷갈렸다..

 

딕셔너리를 이용하여 풀이하였다.

처음에는 set을 이용하여 enter와 leave목록을 만들어서 서로 빼주려고 했는데 시간초과가 났다.

sorted(people_list.keys(), reverse=True)로 key값들만 리스트로 반환해 준 후, 역순으로 정렬하였다.

print(*people_list, sep="\n") 로 한 줄에 한 요소만 출력되게 하였다.

comment