const-tommy.dev
기록을 불러오는 중입니다
Enter와 Change를 할 때 업데이트된다. uid는 고유하니까 uid를 키(Key)로, 닉네임을 값(Value)으로 하는 해시맵(Map) 을 만들어서 계속 덮어씌우면 마지막에 남는 게 진짜 이름이군Enter와 Change 액션만 골라내서 Map에 uid별 최종 닉네임을 저장.Enter와 Leave 액션일 때만 결과 배열에 메시지를 넣는다. 이때 이름은 Map에서 가져오면 자동으로 최신 닉네임이 적용된다./*
Enter, Leave, Change
+ uid1234 Muzi -> Prodo [hash.set("uid1234", "Muzi")]
+ uid4567 Prodo -> Ryan [hash.set("uid4567", "Prodo")]
- uid1234 Muzi -> Prodo
+ uid1234 Prodo
c uid4567 Prodo -> Ryan
*/
function solution(record) {
let hash = new Map();
for(const value of record) {
const actionArr = value.split(" ");
if (actionArr[0] == "Enter" || actionArr[0] == "Change") {
hash.set(actionArr[1], actionArr[2]);
}
}
let result = [];
for(const value of record) {
const actionArr = value.split(" ");
let message = "";
if (actionArr[0] == "Enter") {
message = `${hash.get(actionArr[1])}님이 들어왔습니다.`
} else if (actionArr[0] == "Leave") {
message = `${hash.get(actionArr[1])}님이 나갔습니다.`
}
if (message) {
result.push(message);
}
}
return result;
}