
아래 백준 로고를 클릭하면 해당 문제로 이동합니다 😀
단순하게 일단 리스트에 다 넣고 leave가 나왔을 때 리스트에서 제거해주는 방법을 생각했다. ㅎㅎ이렇게 쉽게 풀리겠냐구요 ~
n = int(input())
members = []
for i in range(n):
name, status = input().split()
if status == 'enter':
members.append(name)
else:
members.remove(name)
members.sort(reverse=True)
for name in members:
print(name)
당연히 안된다. 리스트에서 저렇게 찾아내려면 앞에서부터 냅다 돌아다니면서 찾기때문에 메모리님께서 화를 내시기 때문이지요 ...

그래서 생각한건 dictionary를 이용해보자 ! 였다.
아무래도 리스트로 해서 미어터지는 메모리를 딕셔너리를 이용하면 매우매우 빠르게 동작할 수 있다고 생각했기 때문이다.
그래서 이름과 상태를 입력받고, 일단 딕셔너리에 다 넣는다.
그리고 만약에 상태가 leave라면 딕셔너리에서 제거해주는 과정을 만들어줬다.
그리고 마지막에 사전 역순으로 뒤집고 딕셔너리로 다시 바꿔서 key값들만 출력하면 될것같았다.
n = int(input())
members = {}
for _ in range(n):
name, status = input().split()
members[name] = status
if status == 'leave':
del members[name]
result = sorted(members.items(), reverse=True)
result = dict(result)
for key in result.keys():
print(key)
