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

less than 1 minute read

언어 javascript
Level 2
문제 링크

문제설명

  • 상단 링크 참조

개요

  • 자료구조 해시를 사용하면 쉽게 풀리는 문제.

  • 오히려 어렵게 생각하면 더 꼬였음.

코드


function solution(record) {
    
    let changedMap = new Map();
    let textArray = [];


    record.forEach((log) => {

        //record를 명령어 / uid / NickName으로 분해함
        let sptLog = log.split(" ");

        let query = sptLog[0];
        let uid = sptLog[1];
        let nickName = sptLog[2];

        if(query === "Enter" || query === "Change"){
            changedMap.set(uid, nickName);
        }
    });

    record.forEach((log)=>{

        let sptLog = log.split(" ");

        let query = sptLog[0];
        let uid = sptLog[1];
        let nickName = sptLog[2];
        
        if(changedMap.has(uid)){
            nickName = changedMap.get(uid);
        }

        if(query === "Enter") {
            textArray.push(`${nickName}님이 들어왔습니다.`);
        } else if(query === "Leave"){
            textArray.push(`${nickName}님이 나갔습니다.`);
        }

    });
    
    return textArray;
}


설명이랄것도 없을 정도로 간단한 코드이다. 다른 사람의 풀이를 보니 더 간략하고 쉽게 코딩을 한것을 보고 역시 배울것이 많다고 느꼈다.

Leave a comment