🔗 Problem Link

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


❔Thinking

  • 주어진 N개의 회사 출퇴근 log를 통해, 현재 회사에 남아 있는 사람의 이름을 출력한다.
  • 대소문자를 구분하여 다른 이름으로 취급한다.
  • 결과는 사전순의 역순으로 출력한다.

💻Solution

import sys
input = sys.stdin.readline

n = int(input().rstrip())
member = {}
for _ in range(n):
    name, state = input().split()
    if state == 'enter':
        member[name] = 1
    elif state == 'leave':
        del member[name]

now_in_company = sorted(member.keys(), reverse=True)
for name in now_in_company:
    print(name)

🗝️keypoint

  1. N이 최대 10^6 이기 때문에, list를 통한 remove는 시간초과가 발생할 수 있다.
  2. 이름의 사전 순의 역순이기 때문에, a와 A에서는 a가 먼저 나온다.

+ Recent posts