알고리즘 - 오픈채팅방

HoJeong Im·2021년 9월 21일
0

Break_Algo

목록 보기
10/46

문제

  • 링크

  • 기본적인 객체, for문을 이용한 문제

코드

function solution(record) {
    let answer = [];
    
    let obj = {
        
    };
    
    const proceed = (r) => {
        let record = r.split(" ");
        //console.log(record)
        if(record[0] === "Enter"){
            obj[record[1]+"."] = record[2]; 
            answer.push(`${record[1]+"."}님이 들어왔습니다.`);
        }
        else if(record[0] === "Leave"){
            //delete obj[record[1]+"."];
            answer.push(`${record[1]+"."}님이 나갔습니다.`);
        }
        else if(record[0] === "Change"){
            if(obj[record[1]+"."]){
                obj[record[1]+"."] = record[2];    
            }
        }
    }
    
    record.forEach((r)=>{
        proceed(r);
    });
    //console.log(answer, obj)
    answer = answer.map((e)=>{
        let val = e.substr(0,e.indexOf(".")+1);
        e = e.replace(val,obj[val]);
        //console.log(e,val)
        return e;      
    })
    
    
    return answer;
}

회고

  • 문제를 잘못 이해함 : 채팅방에서 나가면 아이디를 가지고 있는 배열에서 삭제하는 실수를 저지름

  • 삭제하면 다시 들어오지 않으면 undefined를 출력할 것

  • 그래서 삭제하지 않고 변경 시에만 다시 덮어쓰는 방식으로 구현

profile
꾸준함이 제일 빠른 길이었다

0개의 댓글