파이썬/백준

[백준 7785번 | 실버5] 회사에 있는 사람

Mujae98 2023. 12. 13. 19:44

해시를 이용한 집합 어쩌구 문제인데 파이썬은 '딕셔너리'로 가볍게 풀 수 있는 문제

우선 제한 시간은 1초이고 입력이 10^6이니 돌발행동만 안하면 될듯하다.

입력 예제에는 안나와 있으나 enter했다가 leave하고 다시 enter/leaver 반복할 수 있는 상황.

번호가 주어지지 않고 이름과 그에 해당하는 상태가 주어진 상황.

위를 보고 딕셔너리를 떠올리면 문제는 끝난다.

 

import sys

input = sys.stdin.readline

n = int(input())

dic = {}

for i in range(n):
    a, b= input().split()
    dic[a]=b
    
dic= dict(sorted(dic.items(), key=lambda x: x[0], reverse=True))#문제에서 사전순 역순 출력 요구

for i,j in dic.items():
    if j=='enter':#마지막 상태가 enter면 출력
        print(i)

 

아래처럼 딕셔너리도 정렬이 가능하단 사실.. 알고 계셨나요?

#key로 정렬
dic = dict(sorted(dic.items()))

#value로 정렬
dic = dict(sorted(dic.items(), key = lambda x:x[1]))

 

역시 파이썬 짱