개발 연습장/백준 문제풀이

[파이썬, Python] 백준 7785: 회사에 있는 사람

LooanCheong 2023. 4. 26. 11:10
반응형

문제

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

 

7785번: 회사에 있는 사람

첫째 줄에 로그에 기록된 출입 기록의 수 n이 주어진다. (2 ≤ n ≤ 106) 다음 n개의 줄에는 출입 기록이 순서대로 주어지며, 각 사람의 이름이 주어지고 "enter"나 "leave"가 주어진다. "enter"인 경우는

www.acmicpc.net

코드

import sys
input = sys.stdin.readline

n = int(input())
man = {}

for i in range(n):
    a, b = input().split()
    if b == 'enter':
        man[a] = b
    else:
        del man[a]

ans = man.keys()

for i in sorted(ans, reverse = True):
    print(i)

설명

우선 출입을 관리할 딕셔너리를 하나 생성해 준다.

이후 n의 횟수만큼 반복문을 돌아준다.

만약 누군가가 enter 했다면,
딕셔너리에 a를 enter로 기록한다.
그렇지 않다면(leave라면),
딕셔너리에 있는 a를 제거해 준다.

이후 key 값을 다른 리스트로 만들어주고,
사전의 역순으로 출력해야 하므로 reverse = True를 통해 정렬하여 출력한다.

반응형