Programming/Algorithm & Data Structure
[Swift] 프로그래머스 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방
guswlsdk
2022. 5. 17. 11:57
반응형
문제풀이
command는 Enter, Leave, Change 세 가지를 의미한다.
1. command와 Id를 sequence 배열에 저장하며 동시에 Id와 nickName을 딕셔너리로 저장
2. 1번 과정이 끝나면 sequence에 command와 Id에 해당하는 딕셔너리 값을 조합하여 배열에 저장한다.
코드
import Foundation
func solution(_ record:[String]) -> [String] {
var sequence = [[String]]()
var users = [String:String]()
var result = [String]()
for i in record{
let str = i.split(separator: " ")
var command = ""
var userId = ""
var name = ""
if str.count == 2{
command = String(str[0])
userId = String(str[1])
sequence.append([command,userId])
}else if str.count == 3{
command = String(str[0])
userId = String(str[1])
name = String(str[2])
users[userId] = name
sequence.append([command,userId])
}
}
for i in sequence{
let nickName = users[i[1]] ?? ""
if i[0] == "Enter"{
result.append("\(nickName)님이 들어왔습니다.")
}else if i[0] == "Leave"{
result.append("\(nickName)님이 나갔습니다.")
}
}
return result
}
반응형