본문 바로가기
알고리즘

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

by 고고 2022. 2. 10.

문제: https://programmers.co.kr/learn/courses/30/lessons/42888

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

 

[uid: 닉네임] 딕셔너리를 만들어서 들어오거나 이름을 바꾸었을 때 닉네임을 업데이트해주었습니다.

import Foundation

func solution(_ record:[String]) -> [String] {
    var result = [String]()
    var users = [String: String]() // [uid4567, Prodo]
    
    for rec in record {
        let com = rec.components(separatedBy: " ")
        let command = com[0]
        let uid = com[1]
        
        if command == "Enter" || command == "Change" {
            let username = com[2]
            users[uid] = username
        }
    }
    
    for rec in record {
        let com = rec.components(separatedBy: " ")
        let command = com[0]
        let uid = com[1]
        
        if command == "Enter" {
            let username = users[uid]!
            result.append("\(username)님이 들어왔습니다.")
        } else if command == "Leave" {
            let username = users[uid]!
            result.append("\(username)님이 나갔습니다.")
        }
    }
    
    return result
}

solution(["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]) // ["Prodo님이 들어왔습니다.", "Ryan님이 들어왔습니다.", "Prodo님이 나갔습니다.", "Prodo님이 들어왔습니다."]

댓글