[프로그래머스] 오픈채팅방 Swift

승아·2021년 5월 3일
0

프로그래머스 - 오픈채팅방

나의 풀이

import Foundation

func solution(_ record:[String]) -> [String] {
    var nickName: [String : String] = [:]
    var result: [String] = []
    
    // nickName을 가장 최근 값으로 초기화 해줌 
    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
    }
}

0개의 댓글