나의 풀이
import Foundation
func solution(_ record:[String]) -> [String] {
var nickName: [String : String] = [:]
var result: [String] = []
for i in record{
let arr = i.components(separatedBy: " ")
if arr.count > 2 {
nickName[arr[1]] = arr[2]
}
}
for i in record{
let arr = i.components(separatedBy: " ")
let name = nickName[arr[1]]!
if arr[0] == "Enter"{
result.append("\(name)님이 들어왔습니다.")
}else if arr[0] == "Leave"{
result.append("\(name)님이 나갔습니다.")
}
}
return result
}
다른 사람의 풀이
import Foundation
func solution(_ record:[String]) -> [String] {
let actions = ["Enter":"님이 들어왔습니다.", "Leave":"님이 나갔습니다."]
var a = [String:String]()
record.forEach {
let separated = $0.components(separatedBy: " ")
if separated.count > 2 {
a[separated[1]] = separated[2]
}
}
return record.filter { !$0.contains("Change") }.map { (value:String) -> String in
let separated = value.components(separatedBy: " ")
let newString = a[separated[1]]! + actions[separated[0]]!
return newString
}
}