[JS][프로그래머스 Lv2] 오픈채팅방

고병표·2021년 11월 29일
0

코딩테스트 연습

목록 보기
1/9

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

* 문제설명

채팅방에서 닉네임을 변경하는 방법은 두 가지

  • 채팅방을 나간 후, 새로운 닉네임으로 접속(Enter).
  • 채팅방에서 닉네임을 변경(Change)


* 해결방법

  • record를 split로 분리 (1번은 명령어 리스트 // 2, 3번 id, nickname 객체)
  • split 1번이 Enter 면 2번 id를 객체에 추가 + 명령어 리스트에 추가
  • split 1번이 Leave 면 명령어 리스트에 추가
  • split 1번이 Change 면 2번 id를 객체에 추가(수정)
  • 명령 리스트에 따라서 행동 출력

* 작성코드

function solution(record) {
    let answer = [];
    let actionList = [];
    let nickObj = {};
    for (let i=0; i<record.length; i++){
        let input = record[i].split(" ");
        if (input[0] ==='Enter'){
            // 닉네임 변경
            nickObj[input[1]] = input[2];
            // 들어온 행동 추가
            actionList.push({Action:input[0],Id:input[1]});
        }else if(input[0] ==='Leave'){
            // 나간 행동 추가
            actionList.push({Action:input[0],Id:input[1]});
        }else{
            // 닉네임 변경
            nickObj[input[1]] = input[2];
        }
    }
    // 결과 출력
    for (let i=0; i<actionList.length; i++){
        if (actionList[i].Action === 'Enter'){
            answer.push(`${nickObj[actionList[i].Id]}님이 들어왔습니다.`);
        }else{
            answer.push(`${nickObj[actionList[i].Id]}님이 나갔습니다.`);
        }
    }
    return answer;
}

0개의 댓글