SMALL

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

 

7785번: 회사에 있는 사람

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

www.acmicpc.net


  • 문제풀이

enter인 경우  집합에 넣고 leave인 경우 직원 명단에서 빼준다.


  • 코드 1
#-*- coding: utf-8 -*-

from collections import deque

n = int(input())  # 출입 기록의 개수

employees = set()  # 직원 명단을 저장할 집합(set) 생성

for _ in range(n):
    record = input().split()
    name, status = record[0], record[1]

    if status == "enter":
        employees.add(name)  # enter인 경우 직원 명단에 추가
    else:
        employees.remove(name)  # leave인 경우 직원 명단에서 제거

# 직원 명단을 알파벳 역순으로 정렬하여 출력
for employee in sorted(employees, reverse=True):
    print(employee)

 


  • 후기

파이썬을 연습하는 단계이다.

LIST

+ Recent posts