์นดํ…Œ๊ณ ๋ฆฌ ์—†์Œ

[Python] ๋ฐฑ์ค€ 7785๋ฒˆ

๋‹ค๋ธ”๐Ÿ’ 2022. 11. 11. 22:49

# ์ž๋ฃŒ๊ตฌ์กฐ

7785. ํšŒ์‚ฌ์— ์žˆ๋Š” ์‚ฌ๋žŒ (Silver 4) 

์ƒ๊ทผ์ด๋Š” ์„ธ๊ณ„์ ์ธ ์†Œํ”„ํŠธ์›จ์–ด ํšŒ์‚ฌ ๊ธฐ๊ธ€์—์„œ ์ผํ•œ๋‹ค. ์ด ํšŒ์‚ฌ์˜ ๊ฐ€์žฅ ํฐ ํŠน์ง•์€ ์ž์œ ๋กœ์šด ์ถœํ‡ด๊ทผ ์‹œ๊ฐ„์ด๋‹ค. ๋”ฐ๋ผ์„œ, ์ง์›๋“ค์€ ๋ฐ˜๋“œ์‹œ 9์‹œ๋ถ€ํ„ฐ 6์‹œ๊นŒ์ง€ ํšŒ์‚ฌ์— ์žˆ์ง€ ์•Š์•„๋„ ๋œ๋‹ค.

๊ฐ ์ง์›์€ ์ž๊ธฐ๊ฐ€ ์›ํ•  ๋•Œ ์ถœ๊ทผํ•  ์ˆ˜ ์žˆ๊ณ , ์•„๋ฌด๋•Œ๋‚˜ ํ‡ด๊ทผํ•  ์ˆ˜ ์žˆ๋‹ค.

์ƒ๊ทผ์ด๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์˜ ์ถœ์ž…์นด๋“œ ์‹œ์Šคํ…œ์˜ ๋กœ๊ทธ๋ฅผ ๊ฐ€์ง€๊ณ  ์žˆ๋‹ค. ์ด ๋กœ๊ทธ๋Š” ์–ด๋–ค ์‚ฌ๋žŒ์ด ํšŒ์‚ฌ์— ๋“ค์–ด์™”๋Š”์ง€, ๋‚˜๊ฐ”๋Š”์ง€๊ฐ€ ๊ธฐ๋ก๋˜์–ด์ ธ ์žˆ๋‹ค. ๋กœ๊ทธ๊ฐ€ ์ฃผ์–ด์กŒ์„ ๋•Œ, ํ˜„์žฌ ํšŒ์‚ฌ์— ์žˆ๋Š” ๋ชจ๋“  ์‚ฌ๋žŒ์„ ๊ตฌํ•˜๋Š” ํ”„๋กœ๊ทธ๋žจ์„ ์ž‘์„ฑํ•˜์‹œ์˜ค.

 

์ž…๋ ฅ

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

ํšŒ์‚ฌ์—๋Š” ๋™๋ช…์ด์ธ์ด ์—†์œผ๋ฉฐ, ๋Œ€์†Œ๋ฌธ์ž๊ฐ€ ๋‹ค๋ฅธ ๊ฒฝ์šฐ์—๋Š” ๋‹ค๋ฅธ ์ด๋ฆ„์ด๋‹ค. ์‚ฌ๋žŒ๋“ค์˜ ์ด๋ฆ„์€ ์•ŒํŒŒ๋ฒณ ๋Œ€์†Œ๋ฌธ์ž๋กœ ๊ตฌ์„ฑ๋œ 5๊ธ€์ž ์ดํ•˜์˜ ๋ฌธ์ž์—ด์ด๋‹ค.

 

์ถœ๋ ฅ

ํ˜„์žฌ ํšŒ์‚ฌ์— ์žˆ๋Š” ์‚ฌ๋žŒ์˜ ์ด๋ฆ„์„ ์‚ฌ์ „ ์ˆœ์˜ ์—ญ์ˆœ์œผ๋กœ ํ•œ ์ค„์— ํ•œ ๋ช…์”ฉ ์ถœ๋ ฅํ•œ๋‹ค.

 

 

์˜ˆ์ œ ์ž…๋ ฅ1

4
Baha enter
Askar enter
Baha leave
Artem enter

์˜ˆ์ œ ์ถœ๋ ฅ1

Askar
Artem

 

์‹œ๊ฐ„ ์ดˆ๊ณผ๊ฐ€ ๋– ์„œ ์•Œ์•„๋ดค๋Š”๋ฐ 

import sys
input = sys.stdin.readline

์œ„์˜ ๋‘ ๋ฌธ์žฅ์„ ์ ์–ด์ฃผ๋ฉด ์‹œ๊ฐ„์ดˆ๊ณผ ์—†์ด ์ œ์ถœ์ด ๊ฐ€๋Šฅํ•˜๋‹ค.

 

ํ’€์ด)

์ถœ์ž… ๊ธฐ๋ก์˜ ์ˆ˜์— ํ•ด๋‹นํ•˜๋Š” n์„ Input์„ ์‚ฌ์šฉํ•ด์„œ ์ž…๋ ฅ๋ฐ›๋Š”๋‹ค. ๊ทธ๋ฆฌ๊ณ  ์ถœ์ž…์นด๋“œ ์‹œ์Šคํ…œ์˜ ๋กœ๊ทธ๋ฅผ ๊ธฐ๋กํ•˜๋Š” enter_sys ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์„ ์–ธํ•œ๋‹ค. for๋ฌธ์„ ์‚ฌ์šฉํ•ด์„œ name๊ณผ memory๋ฅผ ์ฐจ๋ก€๋กœ ์ž…๋ ฅ๋ฐ›๊ณ , memory์˜ ๊ฐ’์ด enter์ธ ๊ฒฝ์šฐ ํ•ด๋‹น memory์˜ name์— ํ•ด๋‹นํ•˜๋Š” ์ธ๋ฑ์Šค์˜ ๊ฐ’์„ True๋กœ ์ €์žฅํ•œ๋‹ค. 

memory์˜ ๊ฐ’์ด leave์ธ ๊ฒฝ์šฐ, name์— ํ•ด๋‹นํ•˜๋Š” ๊ฐ’์„ ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐํ•œ๋‹ค.

๊ทธ ๋‹ค์Œ names์— enter_sys ๋ฐฐ์—ด์˜ ๊ฐ’์„ ์—ญ์ˆœ์œผ๋กœ ์ •๋ ฌํ•ด์„œ ์ €์žฅํ•œ ๋‹ค์Œ, names ๋ฐฐ์—ด์˜ name๊ฐ’์„ ์ฐจ๋ก€๋กœ ์ถœ๋ ฅํ•œ๋‹ค.

import sys
input = sys.stdin.readline

n = int(input())

enter_sys = {}

for i in range(n):
    name, memory = map(str, input().split())
    if memory == 'enter':  # ์ถœ์ž… ๊ธฐ๋ก์ธ enter์ธ ๊ฒฝ์šฐ
        enter_sys[name] = True  # true ์ €์žฅ
    else:
        del enter_sys[name]  # leave๋ฉด ์ด๋ฆ„์„ ๋ฐฐ์—ด์—์„œ ์ œ๊ฑฐ

names = sorted(enter_sys, reverse=True)   # ์ด๋ฆ„ ์—ญ์ˆœ์œผ๋กœ ์ €์žฅ

for name in names:
    print(name)   # ์ด๋ฆ„๋งŒ ์ถœ๋ ฅ