๋ฐฑ์ค€

๋ฐฑ์ค€ 7785 ํšŒ์‚ฌ์— ์žˆ๋Š” ์‚ฌ๋žŒ - ํŒŒ์ด์ฌ

stoneeee 2022. 12. 29. 21:49

 

 

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

 

7785๋ฒˆ: ํšŒ์‚ฌ์— ์žˆ๋Š” ์‚ฌ๋žŒ

์ฒซ์งธ ์ค„์— ๋กœ๊ทธ์— ๊ธฐ๋ก๋œ ์ถœ์ž… ๊ธฐ๋ก์˜ ์ˆ˜ n์ด ์ฃผ์–ด์ง„๋‹ค. (2 ≤ n ≤ 106) ๋‹ค์Œ n๊ฐœ์˜ ์ค„์—๋Š” ์ถœ์ž… ๊ธฐ๋ก์ด ์ˆœ์„œ๋Œ€๋กœ ์ฃผ์–ด์ง€๋ฉฐ, ๊ฐ ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์ด ์ฃผ์–ด์ง€๊ณ  "enter"๋‚˜ "leave"๊ฐ€ ์ฃผ์–ด์ง„๋‹ค. "enter"์ธ ๊ฒฝ์šฐ๋Š”

www.acmicpc.net

 

 

 

set ์ž๋ฃŒํ˜•์„ ์ด์šฉํ•ด์„œ ๋ฐ์ดํ„ฐ๋ฅผ ๋‹ค๋ฃจ๋Š” ๋ฌธ์ œ์ด๋‹ค.

๋ฐ์ดํ„ฐ์˜ ์ˆ˜๊ฐ€ ์ตœ๋Œ€ 10 ** 6์ด์–ด์„œ ๋น ๋ฅธ ์ž…์ถœ๋ ฅ์„ ์‚ฌ์šฉํ•˜์ง€ ์•Š๊ฑฐ๋‚˜ list๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋‚œ๋‹ค.

 

at_company๋ผ๋Š” set ์ž๋ฃŒํ˜•์„ ์ƒ์„ฑํ•ด ์คฌ๋‹ค.

ํ•œ ์ค„์”ฉ input์„ ๋ฐ›์œผ๋ฉด์„œ ๋งŒ์•ฝ ์ถœ๊ทผ์„ ํ–ˆ๋‹ค๋ฉด at_company์— add ํ•ด์ฃผ๊ณ , ํ‡ด๊ทผ์„ ํ–ˆ๋‹ค๋ฉด at_company์—์„œ remove ํ•ด์ค€๋‹ค.

์ตœ์ข…์ ์œผ๋กœ๋Š” ํ˜„์žฌ ํšŒ์‚ฌ์— ๋‚จ์•„์žˆ๋Š” ์‚ฌ๋žŒ๋“ค๋งŒ at_company์—๋„ ๋‚จ์•„ ์žˆ์„ ๊ฒƒ์ด๋‹ค.

 

์‚ฌ์ „ ๋ฐฐ์—ด ์—ญ์ˆœ์œผ๋กœ ์ถœ๋ ฅํ•˜๋ผ๊ณ  ํ–ˆ์œผ๋‹ˆ๊นŒ list๋กœ ์˜ฎ๊ฒจ ์ •๋ ฌ์„ ํ•ด์ค€๋‹ค.

์ด๋ฆ„์„ ํ•œ ์ค„์”ฉ ์ถœ๋ ฅํ•ด์ฃผ๋ฉด ๋œ๋‹ค.

 

 

from sys import stdin

N = int(input())
at_company = set() # ํšŒ์‚ฌ์— ์žˆ๋Š” ์‚ฌ๋žŒ ์ €์žฅ

for _ in range(N): # ์ž…๋ ฅ ๋ฐ์ดํ„ฐ ์ฒ˜๋ฆฌ
    name, status = stdin.readline().rstrip().split()

    if status == "enter":
        at_company.add(name)
    elif status == "leave":
        at_company.remove(name)

# ๋‹ต ์ •๋ ฌํ•ด์„œ ์ถœ๋ ฅ
answer = list(at_company)
answer.sort(reverse=True)

for i in range(len(answer)):
    print(answer[i])