[νλ‘κ·Έλλ¨Έμ€] μ€νμ±ν λ°© / νμ΄μ¬ / python / λμ λ리 λ°°μ΄
π‘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