반응형
문제
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를 통해 정렬하여 출력한다.
반응형
'개발 연습장 > 백준 문제풀이' 카테고리의 다른 글
[파이썬, Python] 백준 15651: N과 M (3) (0) | 2023.04.28 |
---|---|
[파이썬, Python] 백준 11656: 접미사 배열 (0) | 2023.04.27 |
[파이썬, Python] 백준 14501: 퇴사 (0) | 2023.04.25 |
[파이썬, Python] 백준 2217: 로프 (0) | 2023.04.24 |
[파이썬, Python] 백준 1904: 01타일 (0) | 2023.04.21 |