꾸준히 합시다

백준 파이썬 7785번: 회사에 있는 사람 본문

코딩 테스트 문제 풀이

백준 파이썬 7785번: 회사에 있는 사람

tturbo0824 2021. 3. 24. 15:50

www.acmicpc.net/problem/7785

 

7785번: 회사에 있는 사람

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

www.acmicpc.net

문제 유형: 자료 구조, 문자열, 해시를 사용한 집합과 맵

 

# Solution 1 - 시간 초과

import sys
input = sys.stdin.readline

working = []
for _ in range(int(input())):
    a, b = map(str, input().split())
    if b == "enter":
        working.append(a)
    elif b == "leave":
        working.pop(working.index(a))
        
working.sort(reverse=True)

print(*working, sep="\n")

 

# Solution 2

import sys
input = sys.stdin.readline

working = {}
for _ in range(int(input())):
    a, b = map(str, input().split())
    if b == "enter":
        working[a] = 1
    elif b == "leave":
        working[a] = 0
        
answer = []

for people in working:
    if working[people]:
        answer.append(people)

answer.sort(reverse=True)

print(*answer, sep="\n")
Comments