파이썬/백준
[백준 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]))
역시 파이썬 짱