코딩테스트
Swift - 오픈채팅방(프로그래머스, Lv2)
택꽁이
2022. 4. 12. 17:59
728x90
func solution(_ record:[String]) -> [String] {
var nickname = [String : String]()
var result = [String]()
enum printScript: String {
case Enter = "님이 들어왔습니다."
case Leave = "님이 나갔습니다."
}
let recordAry = record.map{ $0 }
// 닉네임 Dic 업데이트
recordAry.forEach{
let sen = $0.components(separatedBy: " ")
if sen.count == 3 {
nickname.updateValue(sen[2], forKey: sen[1])
}
}
// record 순서대로 메세지 출력
recordAry.filter{ !$0.contains("Change")}.forEach{
let sen = $0.components(separatedBy: " ")
switch sen[0] {
case "Enter" :
let resultSen = "\(nickname[sen[1]]!)" + printScript.Enter.rawValue
result.append(resultSen)
case "Leave" :
let resultSen = "\(nickname[sen[1]]!)" + printScript.Leave.rawValue
result.append(resultSen)
default:
break
}
}
return result
}
닉네임을 업데이트 한 후 최종 업데이트 된 Dictionary를 가지고 주어진 record를 따라 문자열 출력