[μ€μννΈ μκ³ λ¦¬μ¦] νλ‘κ·Έλλ¨Έμ€: μ€νμ±ν λ°©
λ¬Έμ
μΉ΄μΉ΄μ€ν‘ μ€νμ±ν λ°©μμλ μΉκ΅¬κ° μλ μ¬λλ€κ³Ό λνλ₯Ό ν μ μλλ°, λ³Έλ λλ€μμ΄ μλ κ°μμ λλ€μμ μ¬μ©νμ¬ μ±ν λ°©μ λ€μ΄κ° μ μλ€.
μ μ μ¬μμΈ κΉν¬λ£¨λ μΉ΄μΉ΄μ€ν‘ μ€ν μ±ν λ°©μ κ°μ€ν μ¬λμ μν΄, λ€μν μ¬λλ€μ΄ λ€μ΄μ€κ³ , λκ°λ κ²μ μ§μΌλ³Ό μ μλ κ΄λ¦¬μμ°½μ λ§λ€κΈ°λ‘ νλ€. μ±ν λ°©μ λκ΅°κ° λ€μ΄μ€λ©΄ λ€μ λ©μμ§κ° μΆλ ₯λλ€.
- "[λλ€μ]λμ΄ λ€μ΄μμ΅λλ€."
μ±ν λ°©μμ λκ΅°κ° λκ°λ©΄ λ€μ λ©μμ§κ° μΆλ ₯λλ€.
- "[λλ€μ]λμ΄ λκ°μ΅λλ€."
μ±ν λ°©μμ λλ€μμ λ³κ²½νλ λ°©λ²μ λ€μκ³Ό κ°μ΄ λ κ°μ§μ΄λ€.
- μ±ν λ°©μ λκ° ν, μλ‘μ΄ λλ€μμΌλ‘ λ€μ λ€μ΄κ°λ€.
- μ±ν λ°©μμ λλ€μμ λ³κ²½νλ€.
λλ€μμ λ³κ²½ν λλ κΈ°μ‘΄μ μ±ν λ°©μ μΆλ ₯λμ΄ μλ λ©μμ§μ λλ€μλ μ λΆ λ³κ²½λλ€.
μλ₯Ό λ€μ΄, μ±ν λ°©μ "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 ν¨μλ₯Ό μμ±νλΌ.
μ νμ¬ν
- recordλ λ€μκ³Ό κ°μ λ¬Έμμ΄μ΄ λ΄κΈ΄ λ°°μ΄μ΄λ©°, κΈΈμ΄λ 1 μ΄μ 100,000 μ΄νμ΄λ€.
- λ€μμ recordμ λ΄κΈ΄ λ¬Έμμ΄μ λν μ€λͺ
μ΄λ€.
- λͺ¨λ μ μ λ [μ μ μμ΄λ]λ‘ κ΅¬λΆνλ€.
- [μ μ μμ΄λ] μ¬μ©μκ° [λλ€μ]μΌλ‘ μ±ν λ°©μ μ μ₯ - "Enter [μ μ μμ΄λ] [λλ€μ]" (ex. "Enter uid1234 Muzi")
- [μ μ μμ΄λ] μ¬μ©μκ° μ±ν λ°©μμ ν΄μ₯ - "Leave [μ μ μμ΄λ]" (ex. "Leave uid1234")
- [μ μ μμ΄λ] μ¬μ©μκ° λλ€μμ [λλ€μ]μΌλ‘ λ³κ²½ - "Change [μ μ μμ΄λ] [λλ€μ]" (ex. "Change uid1234 Muzi")
- 첫 λ¨μ΄λ Enter, Leave, Change μ€ νλμ΄λ€.
- κ° λ¨μ΄λ 곡백μΌλ‘ ꡬλΆλμ΄ μμΌλ©°, μνλ²³ λλ¬Έμ, μλ¬Έμ, μ«μλ‘λ§ μ΄λ£¨μ΄μ Έμλ€.
- μ μ μμ΄λμ λλ€μμ μνλ²³ λλ¬Έμ, μλ¬Έμλ₯Ό ꡬλ³νλ€.
- μ μ μμ΄λμ λλ€μμ κΈΈμ΄λ 1 μ΄μ 10 μ΄νμ΄λ€.
- μ±ν λ°©μμ λκ° μ μ κ° λλ€μμ λ³κ²½νλ λ± μλͺ» λ μ λ ₯μ μ£Όμ΄μ§μ§ μλλ€.
νμ΄
μ¬μ©μμ λλ€μμ΄ λ°λ μ μκ³ , λκ°λ€κ° λ€μ λ€μ΄μ¨ κ²½μ°μλ λ°λ λλ€μμ΄ μ μ©λμ΄μΌ νκΈ° λλ¬Έμ ν΄μ맡μΌλ‘ μμ΄λμ λλ€μμ 맡νμμΌλκ³ λλ€μ λ°λλ©΄ μμ΄λμ κ°μ΄ 맡νλ λλ€μλ λ°κΏμ£Όμ΄μΌ ν©λλ€. λ€μ΄μ¨ κΈ°λ‘, λκ° κΈ°λ‘μ μμ΄λμ κ°μ΄ κΈ°λ‘ν΄λκ³ λ§μ§λ§μ μΆλ ₯ν λλ μ΅μ’ μ μΌλ‘ μ μ₯λμ΄ μλ κ° μμ΄λμ 맡νλ λλ€μμ μΆλ ₯ν΄μ€λλ€.
μ½λ
import Foundation
func solution(_ record:[String]) -> [String] {
var history : [(action: String, id: String)] = []
var idMap : [String : String] = [:]
var answer: [String] = []
for rec in record {
let recArr = rec.components(separatedBy: " ")
history.append((recArr[0], recArr[1]))
switch recArr[0] {
case "Enter":
idMap[recArr[1]] = recArr[2]
case "Change":
idMap[recArr[1]] = recArr[2]
default:
break;
}
}
for (action, id) in history {
switch action {
case "Enter":
answer.append("\(idMap[id]!)λμ΄ λ€μ΄μμ΅λλ€.")
case "Leave":
answer.append("\(idMap[id]!)λμ΄ λκ°μ΅λλ€.")
default:
break
}
}
return answer
}