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

최대 1 분 소요

문제

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





코드

function solution(record) {
    
    let map = new Map();
    let result = [];
    
    for(let i=0; i<record.length; i++){
        let arr = record[i].split(' ');
        if(arr[0]==='Leave') {
            result.push(arr[1]+' 나갔습니다.');
        }else if(arr[0]==='Enter'){
            map.set(arr[1],arr[2]);
            result.push(arr[1]+' 들어왔습니다.');
        }else{
            map.set(arr[1],arr[2]);
        }
    }
    
    for(let i=0; i<result.length; i++){
        result[i] = map.get(result[i].split(' ')[0]) +'님이 '+ result[i].split(' ')[1];
    }
    
    return result;
}


풀이

맵 객체를 생성해서 아이디에 닉네임 값을 할당하고, result 배열에는 입장,퇴장,닉네임 변경 여부를 따져서 순서대로 문자열을 입력했다.

이후에 for loop 에서 result 배열에 들어있는 아이디값을 맵에있는 닉네임과 매치시켜서 아이디 > 닉네임 으로 바꿔줌