๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

Algorithm/ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค

[ํ”„๋กœ๊ทธ๋ž˜๋จธ์Šค] ์˜คํ”ˆ์ฑ„ํŒ…๋ฐฉ (Python)

1. ๋ฌธ์ œ ์„ค๋ช…

๋ฌธ์ œ ๋งํฌ

  • ์˜คํ”ˆ์ฑ„ํŒ… ๋ฐฉ์—์„œ ํšŒ์›์ด ๋‚˜๊ฐ€๊ณ  ๋“ค์–ด์˜จ ์ •๋ณด์™€ ์œ ์ €์•„์ด๋””๊ฐ€ ์ฃผ์–ด์งˆ ๋•Œ, ํŠน์ • ์œ ์ €๊ฐ€ ์ด๋ฆ„์„ ๋ณ€๊ฒฝํ•œ ๊ฒƒ๊นŒ์ง€ ๊ณ ๋ คํ•˜์—ฌ ๋ฌธ๊ตฌ๋ฅผ ์ถœ๋ ฅ
  • ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ์œ ์ € ์•„์ด๋””(key), ์œ ์ €๊ฐ€ ์‚ฌ์šฉํ•˜๋Š” ์ด๋ฆ„(value) ์ €์žฅ, ๋ณ€๊ฒฝ ์‹œ ๋ฐ˜์˜ํ•˜์—ฌ ๊ฒฐ๊ณผ ์ถœ๋ ฅ ์‹œ ์‚ฌ์šฉ

2. ์ฝ”๋“œ

def solution(record):
    db = {}
    t = ''
    for re in record:
        t = re.split(' ')
        if t[0] != 'Leave':
            db[t[1]] = t[2]

    result = []
    for re in record:
        t = re.split(' ')
        if t[0] == "Enter":
            result.append(db[t[1]]+'๋‹˜์ด ๋“ค์–ด์™”์Šต๋‹ˆ๋‹ค.')
        if t[0] == "Leave":
            result.append(db[t[1]]+'๋‹˜์ด ๋‚˜๊ฐ”์Šต๋‹ˆ๋‹ค.')
    return result

3. ์–ด๋ ค์› ๋˜ ์ 

  • ๋”•์…”๋„ˆ๋ฆฌ๋ฅผ ์‚ฌ์šฉํ•  ๋•Œ, ์ฒ˜์Œ์— ๋ชจ๋“  ๋ฐ์ดํ„ฐ, ์ฆ‰ record์˜ ๋ชจ๋“  ์ •๋ณด๋ฅผ ๋”•์…”๋„ˆ๋ฆฌ์— ์ €์žฅํ•˜๋ ค๊ณ  ํ–ˆ์—ˆ๋Š”๋ฐ, ๊ทธ๋Ÿฌ์ง€ ์•Š๊ณ ์„œ๋„ ์‰ฝ๊ฒŒ ํ’€ ์ˆ˜ ์žˆ์—ˆ๋‹ค.
  • ์ฒ˜์Œ ํ’€ ๋•Œ๋Š” for๋ฌธ์„ ์—ฌ๋Ÿฌ๊ฐœ ์‚ฌ์šฉํ–ˆ๋Š”๋ฐ record์— ์ฃผ์–ด์ง„ ๋ฌธ์ž์—ด์„ ๊ณต๋ฐฐ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ„๋Š” for๋ฌธ, ๋”•์…”๋„ˆ๋ฆฌ์— ์œ ์ €์•„์ด๋””์™€ ์œ ์ €์ด๋ฆ„ ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๋Š” for๋ฌธ์„ ํ•˜๋‚˜์˜ for๋ฌธ์•ˆ์—์„œ ์ง„ํ–‰๋˜๋„๋ก ์ˆ˜์ •ํ–ˆ๋‹ค.