[프로그래머스 | JS] LV.2 오픈채팅방

Urther·2022년 8월 5일
0

알고리즘

목록 보기
40/41
post-thumbnail

Problem | 오픈채팅방

대부분의 회사가 IDE 복사를 허용하지 않아서 프로그래머스 IDE 창에서 코드를 치는 습관을 들이고 있다. 그래서 tab키 간격이 고르지 않을 수 있습니다 🥲

✨ 접근 방식

map 을 사용한다.

  • change 되거나 새로 들어오는 경우 다시 map의 닉네임을 세팅해준다.

그리고, 최종적으로 for문을 반복하며 id에 따라 닉네임을 출력할 수 있게끔해준다. (중복 닉네임이 허용되므로)

- ✔️ 전체코드

function solution(records) {
    var answer = [];
    
    const userMap=new Map();
    
    for(let record of records){
        const [order,id,nickname] =record.split(' ');
        
        if(order==='Leave') continue;
        if(!userMap.get(id) || order==='Change' || userMap.get(id)!==nickname){
            userMap.set(id,nickname);
        }
    }
    
    for(let record of records){
        const [order,id]=record.split(' ');
        const nickname=userMap.get(id);
        if(order==='Enter'){
           answer.push(`${nickname}님이 들어왔습니다.`)
            
        }else if(order==='Leave'){
           answer.push(`${nickname}님이 나갔습니다.`)  
        }
    }
    return answer;
}
profile
이전해요 ☘️ https://mei-zy.tistory.com

0개의 댓글