[프로그래머스] 오픈채팅방
문제
문제 링크 : 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 배열에 들어있는 아이디값을 맵에있는 닉네임과 매치시켜서 아이디 > 닉네임
으로 바꿔줌