프로그래머스
[프로그래머스] 스위프트 오픈채팅방
Hani_Levenshtein
2021. 12. 26. 23:29
https://programmers.co.kr/learn/courses/30/lessons/42888
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
import Foundation
func solution(_ record:[String]) -> [String] {
let users: [String: String] = recordToUsers(record: record)
let messages: [String] = recordToMessages(record: record, users: users)
return messages
}
func recordToUsers(record: [String]) -> [String: String] {
var users = [String: String]()
record.forEach {
let strings = $0.components(separatedBy: " ")
let order = strings[0]
if order == "Enter" || order == "Change" {
let uid = strings[1]
let name = strings[2]
users[uid] = name
}
}
return users
}
func recordToMessages(record: [String], users: [String: String]) -> [String] {
let output: [String: String] = ["Enter": "님이 들어왔습니다.",
"Leave": "님이 나갔습니다."]
var messages = [String]()
record.forEach {
let strings = $0.components(separatedBy: " ")
let order = strings[0]
let uid = strings[1]
if order == "Enter" || order == "Leave" {
messages.append(users[uid]! + output[order]!)
}
}
return messages
}