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

이윤주·2020년 5월 30일

코딩테스트

목록 보기
11/18

입출력 예

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

Enter [유저 아이디] - ~님이 들어왔습니다.
Leave [유저 아이디] - ~님이 나갔습니다.

유저는 나간 후에 바뀐 닉네임으로 들어올 수도 있다.

["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]

=> ["Enter","uid1234", "Muzi"], ["Enter","uid4567","Prodo"],["Leave","uid1234"],["Enter","uid1234", "Prodo"],["Change","uid4567","Ryan"][i][0]은 상태, [i][1]은 아이디, [i][0]은 닉네임

function solution(record) {
    let answer = [];
    let nick = {}
    
    record = record.map((curr) => {
        return curr.split(" ")    
    }) 
    
    for(let i = 0; i < record.length; i++) {
        if(record[i].length === 3) {
            nick[record[i][1]] = record[i][2]       
        } 
    }

    for(let i = 0; i < record.length; i++) {
        if(record[i][0] === "Enter") {
            answer.push(nick[record[i][1]] + "님이 들어왔습니다.")
        }
        if(record[i][0] === "Leave") {
            answer.push(nick[record[i][1]] + "님이 나갔습니다.")
        }
    }
    return answer;
}

0개의 댓글