๐กsolutions_
โ ๋ชจ๋ ์ ์ ์ ๋๋ค์์ ์ ์ฅํ๋ name_list ๋์ ๋๋ฆฌ(key๋ ๊ณ ์ ํ ์ ์ ์์ด๋๋ก, value๋ ๋๋ค์์ผ๋ก ์ ์ฅ), ์ ์ ๋ค์ ํ๋(์ ์ฅ, ํด์ฅ)์ ์ ์ฅํ๋ action_list ๋ฆฌ์คํธ, ์ต์ข ๊ฒฐ๊ณผ ๊ฐ์ ์ ์ฅํ๋ result ๋ฆฌ์คํธ ๋ง๋ฌ
โ ๊ฐ ์ ๋ ฅ๊ฐ์ 'ํ๋ ์ ์ ์์ด๋ ๋๋ค์' ์์ผ๋ก ๊ณต๋ฐฑ์ ๊ธฐ์ค์ผ๋ก split !
โ ๋ ๊ฐ์ง if๋ฌธ
โ ์ด๋ฆ์ ๋ณ๊ฒฝํ๋ ๊ฒฝ์ฐ์ธ์ง ํ์ธ -> enter, change -> name_list์ ์๋ก ์ด๋ฆ ์์ฑํ๊ฑฐ๋ ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ
โก ๋ค์ด์ค๊ฑฐ๋ ๋๊ฐ๋ ๊ฒฝ์ฐ์ธ์ง ํ์ธ -> enter, leave -> action_list์ ํ๋ ๊ธฐ๋กํ๊ธฐ
๐ซcode_
def solution(records):
name_list = {}
action_list = []
result = []
for record in records:
record = record.split(' ')
action = record[0]
# print(record)
# ์๋ก ์์ฑ ํ๊ฑฐ๋ ์ด๋ฆ ๋ณ๊ฒฝํ๊ธฐ
if action == "Enter" or action == "Change":
name_list[record[1]] = record[2] #key๋ id, value๋ ๋๋ค์
# ๋ค์ด์ค๊ฑฐ๋ ๋๊ฐ ๋๋ฅผ ๊ธฐ๋กํ๊ธฐ
if action == "Enter" or action == "Leave":
action_list.append((record[1] ,record[0])) # id, ํ๋
for id, action in action_list:
if action == "Enter":
result.append(name_list[id] + "๋์ด ๋ค์ด์์ต๋๋ค.")
else:
result.append(name_list[id] + "๋์ด ๋๊ฐ์ต๋๋ค.")
return result
๐ description_
์คํ์ฑํ ๋ฐฉ
์นด์นด์คํก ์คํ์ฑํ ๋ฐฉ์์๋ ์น๊ตฌ๊ฐ ์๋ ์ฌ๋๋ค๊ณผ ๋ํ๋ฅผ ํ ์ ์๋๋ฐ, ๋ณธ๋ ๋๋ค์์ด ์๋ ๊ฐ์์ ๋๋ค์์ ์ฌ์ฉํ์ฌ ์ฑํ ๋ฐฉ์ ๋ค์ด๊ฐ ์ ์๋ค.
์ ์ ์ฌ์์ธ ๊นํฌ๋ฃจ๋ ์นด์นด์คํก ์คํ ์ฑํ ๋ฐฉ์ ๊ฐ์คํ ์ฌ๋์ ์ํด, ๋ค์ํ ์ฌ๋๋ค์ด ๋ค์ด์ค๊ณ , ๋๊ฐ๋ ๊ฒ์ ์ง์ผ๋ณผ ์ ์๋ ๊ด๋ฆฌ์์ฐฝ์ ๋ง๋ค๊ธฐ๋ก ํ๋ค. ์ฑํ ๋ฐฉ์ ๋๊ตฐ๊ฐ ๋ค์ด์ค๋ฉด ๋ค์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค.
[๋๋ค์]๋์ด ๋ค์ด์์ต๋๋ค.
์ฑํ ๋ฐฉ์์ ๋๊ตฐ๊ฐ ๋๊ฐ๋ฉด ๋ค์ ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค.
[๋๋ค์]๋์ด ๋๊ฐ์ต๋๋ค.
์ฑํ ๋ฐฉ์์ ๋๋ค์์ ๋ณ๊ฒฝํ๋ ๋ฐฉ๋ฒ์ ๋ค์๊ณผ ๊ฐ์ด ๋ ๊ฐ์ง์ด๋ค.
- ์ฑํ ๋ฐฉ์ ๋๊ฐ ํ, ์๋ก์ด ๋๋ค์์ผ๋ก ๋ค์ ๋ค์ด๊ฐ๋ค.
- ์ฑํ ๋ฐฉ์์ ๋๋ค์์ ๋ณ๊ฒฝํ๋ค.
๋๋ค์์ ๋ณ๊ฒฝํ ๋๋ ๊ธฐ์กด์ ์ฑํ ๋ฐฉ์ ์ถ๋ ฅ๋์ด ์๋ ๋ฉ์์ง์ ๋๋ค์๋ ์ ๋ถ ๋ณ๊ฒฝ๋๋ค.
์๋ฅผ ๋ค์ด, ์ฑํ ๋ฐฉ์ Muzi์ Prodo๋ผ๋ ๋๋ค์์ ์ฌ์ฉํ๋ ์ฌ๋์ด ์์๋๋ก ๋ค์ด์ค๋ฉด ์ฑํ ๋ฐฉ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ์์ง๊ฐ ์ถ๋ ฅ๋๋ค.
Muzi๋์ด ๋ค์ด์์ต๋๋ค.
Prodo๋์ด ๋ค์ด์์ต๋๋ค.์ฑํ ๋ฐฉ์ ์๋ ์ฌ๋์ด ๋๊ฐ๋ฉด ์ฑํ ๋ฐฉ์๋ ๋ค์๊ณผ ๊ฐ์ด ๋ฉ์์ง๊ฐ ๋จ๋๋ค.
Muzi๋์ด ๋ค์ด์์ต๋๋ค.
Prodo๋์ด ๋ค์ด์์ต๋๋ค.
Muzi๋์ด ๋๊ฐ์ต๋๋ค.Muzi๊ฐ ๋๊ฐํ ๋ค์ ๋ค์ด์ฌ ๋, Prodo ๋ผ๋ ๋๋ค์์ผ๋ก ๋ค์ด์ฌ ๊ฒฝ์ฐ ๊ธฐ์กด์ ์ฑํ ๋ฐฉ์ ๋จ์์๋ Muzi๋ Prodo๋ก ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ค.
Prodo๋์ด ๋ค์ด์์ต๋๋ค.
Prodo๋์ด ๋ค์ด์์ต๋๋ค.
Prodo๋์ด ๋๊ฐ์ต๋๋ค.
Prodo๋์ด ๋ค์ด์์ต๋๋ค.์ฑํ ๋ฐฉ์ ์ค๋ณต ๋๋ค์์ ํ์ฉํ๊ธฐ ๋๋ฌธ์, ํ์ฌ ์ฑํ ๋ฐฉ์๋ Prodo๋ผ๋ ๋๋ค์์ ์ฌ์ฉํ๋ ์ฌ๋์ด ๋ ๋ช ์ด ์๋ค. ์ด์ , ์ฑํ ๋ฐฉ์ ๋ ๋ฒ์งธ๋ก ๋ค์ด์๋ Prodo๊ฐ Ryan์ผ๋ก ๋๋ค์์ ๋ณ๊ฒฝํ๋ฉด ์ฑํ ๋ฐฉ ๋ฉ์์ง๋ ๋ค์๊ณผ ๊ฐ์ด ๋ณ๊ฒฝ๋๋ค.
Prodo๋์ด ๋ค์ด์์ต๋๋ค.
Ryan๋์ด ๋ค์ด์์ต๋๋ค.
Prodo๋์ด ๋๊ฐ์ต๋๋ค.
Prodo๋์ด ๋ค์ด์์ต๋๋ค.์ฑํ ๋ฐฉ์ ๋ค์ด์ค๊ณ ๋๊ฐ๊ฑฐ๋, ๋๋ค์์ ๋ณ๊ฒฝํ ๊ธฐ๋ก์ด ๋ด๊ธด ๋ฌธ์์ด ๋ฐฐ์ด record๊ฐ ๋งค๊ฐ๋ณ์๋ก ์ฃผ์ด์ง ๋, ๋ชจ๋ ๊ธฐ๋ก์ด ์ฒ๋ฆฌ๋ ํ, ์ต์ข ์ ์ผ๋ก ๋ฐฉ์ ๊ฐ์คํ ์ฌ๋์ด ๋ณด๊ฒ ๋๋ ๋ฉ์์ง๋ฅผ ๋ฌธ์์ด ๋ฐฐ์ด ํํ๋ก return ํ๋๋ก solution ํจ์๋ฅผ ์์ฑํ๋ผ.
์ ํ์ฌํญ์ ์ถ๋ ฅ ์ recordresult
- record๋ ๋ค์๊ณผ ๊ฐ์ ๋ฌธ์์ด์ด ๋ด๊ธด ๋ฐฐ์ด์ด๋ฉฐ, ๊ธธ์ด๋ 1 ์ด์ 100,000 ์ดํ์ด๋ค.
- ๋ค์์ record์ ๋ด๊ธด ๋ฌธ์์ด์ ๋ํ ์ค๋ช ์ด๋ค.
- ๋ชจ๋ ์ ์ ๋ [์ ์ ์์ด๋]๋ก ๊ตฌ๋ถํ๋ค.
- [์ ์ ์์ด๋] ์ฌ์ฉ์๊ฐ [๋๋ค์]์ผ๋ก ์ฑํ ๋ฐฉ์ ์ ์ฅ - Enter [์ ์ ์์ด๋] [๋๋ค์] (ex. Enter uid1234 Muzi)
- [์ ์ ์์ด๋] ์ฌ์ฉ์๊ฐ ์ฑํ ๋ฐฉ์์ ํด์ฅ - Leave [์ ์ ์์ด๋] (ex. Leave uid1234)
- [์ ์ ์์ด๋] ์ฌ์ฉ์๊ฐ ๋๋ค์์ [๋๋ค์]์ผ๋ก ๋ณ๊ฒฝ - Change [์ ์ ์์ด๋] [๋๋ค์] (ex. Change uid1234 Muzi)
- ์ฒซ ๋จ์ด๋ Enter, Leave, Change ์ค ํ๋์ด๋ค.
- ๊ฐ ๋จ์ด๋ ๊ณต๋ฐฑ์ผ๋ก ๊ตฌ๋ถ๋์ด ์์ผ๋ฉฐ, ์ํ๋ฒณ ๋๋ฌธ์, ์๋ฌธ์, ์ซ์๋ก๋ง ์ด๋ฃจ์ด์ ธ์๋ค.
- ์ ์ ์์ด๋์ ๋๋ค์์ ์ํ๋ฒณ ๋๋ฌธ์, ์๋ฌธ์๋ฅผ ๊ตฌ๋ณํ๋ค.
- ์ ์ ์์ด๋์ ๋๋ค์์ ๊ธธ์ด๋ 1 ์ด์ 10 ์ดํ์ด๋ค.
- ์ฑํ ๋ฐฉ์์ ๋๊ฐ ์ ์ ๊ฐ ๋๋ค์์ ๋ณ๊ฒฝํ๋ ๋ฑ ์๋ชป ๋ ์ ๋ ฅ์ ์ฃผ์ด์ง์ง ์๋๋ค.
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"] ["Prodo๋์ด ๋ค์ด์์ต๋๋ค.", "Ryan๋์ด ๋ค์ด์์ต๋๋ค.", "Prodo๋์ด ๋๊ฐ์ต๋๋ค.", "Prodo๋์ด ๋ค์ด์์ต๋๋ค."]
๋ฌธ์ ์ถ์ฒ : https://programmers.co.kr/learn/courses/30/lessons/42888
์ฝ๋ฉํ ์คํธ ์ฐ์ต - ์คํ์ฑํ ๋ฐฉ
์คํ์ฑํ ๋ฐฉ ์นด์นด์คํก ์คํ์ฑํ ๋ฐฉ์์๋ ์น๊ตฌ๊ฐ ์๋ ์ฌ๋๋ค๊ณผ ๋ํ๋ฅผ ํ ์ ์๋๋ฐ, ๋ณธ๋ ๋๋ค์์ด ์๋ ๊ฐ์์ ๋๋ค์์ ์ฌ์ฉํ์ฌ ์ฑํ ๋ฐฉ์ ๋ค์ด๊ฐ ์ ์๋ค. ์ ์ ์ฌ์์ธ ๊นํฌ๋ฃจ๋ ์นด์นด์คํก ์ค
programmers.co.kr