PS/프로그래머스

[구현][Javascript] 오픈채팅방

returnzero 2022. 7. 28. 16:03
function solution(record) {
    record =record.map(e=>e.split(' '));
    let idToNick={};
    for(let i=0; i<record.length;i++){
        if(record[i][0]=='Enter'){
            idToNick[record[i][1]]=record[i][2]
        }
        else if (record[i][0]=='Change'){
            idToNick[record[i][1]]=record[i][2]
        }
    }
    // console.log(idToNick)
    // console.log(record);
    
    function messageMaker(arr){
    if(arr[0]=='Enter'){
        let Nick=idToNick[arr[1]];
        return `${Nick}님이 들어왔습니다.`
    }    
    else if(arr[0]=='Leave'){
        let Nick=idToNick[arr[1]];

        return `${Nick}님이 나갔습니다.`
    }
    }
    
    var answer = [];
    record.forEach(e=> { 
        if(e[0]!=='Change'){
            answer.push(messageMaker(e))
        }
   })
    // console.log(answer);
    return answer;
}

// update는 모든 곳에 적용해야 한다. 
// nickname에 중복이 있으니 고유하게 식별할 필요가 있음.

Js object활용해서 저장해두면 간편하게 구현할 수 있다.