개발/Swift
[Swift] 오픈채팅방 프로그래머스
덤벨로퍼
2022. 3. 27. 17:32
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]
문제 해결방법
들어오고 나가면 return 배열에 값을 추가하게되는데
이때 닉네임은 마지막에 유저가 설정한 닉네임을 써야한다.
그러므로 마지막 상태의 유저 닉네임을 알고있어야 한다.
관련 정보를 먼저 dict 에 넣어준다.
//uid1234 prodo
//uid4566 ryan
그리고 나중에
enter/leave 관련한 히스토리 를 보고 uid와 최종 닉네임을 참조해서 result 배열을 만들어 리턴하면 된다.
func solution(_ record:[String]) -> [String] {
var nicknameDict = [String:String]()
var answer = [String]()
for i in 0..<record.count{
let data = record[i].split(separator: " ")
if(data[0] != "Leave"){
nicknameDict[String(data[1])] = String(data[2])
}
}
for i in 0..<record.count{
let data = record[i].split(separator: " ")
let nickname = nicknameDict[String(data[1])]!
if(data[0] == "Enter"){
answer.append("\\(nickname)님이 들어왔습니다.")
}else if(data[0] == "Leave"){
answer.append("\\(nickname)님이 나갔습니다.")
}
}
print(answer)
return answer
}