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

dongwon·2021년 1월 9일
0

문제

오픈채팅방

코드

function solution(record) {
  let answer = [];

  const newRecord = record.map((el) => el.split(" "));
  const name = {};

  for (let i = 0; i < newRecord.length; i++) {
    if (newRecord[i][0] !== "Leave") {
      name[newRecord[i][1]] = newRecord[i][2];
    }
  }

  /*
    name : {
      uid1234 : Prodo,
      uid4567 : Ryon
    }
  */

  for (let i = 0; i < newRecord.length; i++) {
    if (newRecord[i][0] === "Enter") {
      answer.push(`${name[newRecord[i][1]]}님이 들어왔습니다.`);
    } else if (newRecord[i][0] === "Leave") {
      answer.push(`${name[newRecord[i][1]]}님이 나갔습니다.`);
    }
  }

  console.log(answer);
  return answer;
}

구현

  • 결국 해당 id의 마지막 nickname을 안다면 해결
  • Enter, Change action일 때 아이디가 이미 변경된 후 이므로 순회하며 업데이트
  • 객체에 할당 방법
  for (let i = 0; i < newRecord.length; i++) {
    if (newRecord[i][0] !== "Leave") {
      name[newRecord[i][1]] = newRecord[i][2];
    }
  }

  /*
    name : {
      uid1234 : Prodo,
      uid4567 : Ryon
    }
  */
profile
데이원컴퍼니 프론트엔드 개발자입니다.

0개의 댓글