N

(프로그래머스 JS KAKAO)오픈 채팅방 본문

프로그래머스 알고리즘/KAKAO

(프로그래머스 JS KAKAO)오픈 채팅방

naeunchan 2021. 5. 10. 10:57
728x90
반응형

programmers.co.kr/learn/courses/30/lessons/42888?language=javascript

 

코딩테스트 연습 - 오픈채팅방

오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오

programmers.co.kr

 

우선 record에 있는 문자열에서 "Enter"와 "Change"를 이용해 id에 따른 닉네임을 등록하자.

forEach를 통해 record의 각각 엘리먼트를 순회.

element를 순회하면서 공백으로 문자열을 split 하고, 결과를 [state, id, nickname]에 저장한다.

state가 "Enter" or "Change"라면 users[id] = nickname으로 등록 또는 변경한다.

 

그리고 다시 record를 forEach로 순회하면서 각 state에 따른 문장을 answer에 push하면 된다.

function solution(record) {
    const answer = [];
    const users = {};
    
    record.forEach((element) => {
        const [state, id, nickname] = element.split(" ");

        if(state === "Enter" || state === "Change"){
            users[id] = nickname;
        }
    });
    
    record.forEach((element) => {
        const [state, id] = element.split(" ");
        if(state === "Enter"){
            answer.push(`${users[id]}님이 들어왔습니다.`);
        }
        else if(state === "Leave"){
            answer.push(`${users[id]}님이 나갔습니다.`);
        }
    });
    
    return answer;
}
728x90
반응형