오픈채팅방
by EarlyHail
오픈채팅방
JavaScript
const actionType = {
Enter: "들어왔습니다.",
Leave: "나갔습니다.",
};
const actionType = {
Enter: "들어왔습니다.",
Leave: "나갔습니다.",
};
function solution(record) {
const uidActions = [];
const answer = [];
const userObj = {};
for (let i = 0; i < record.length; i++) {
const [action, uid, userName] = record[i].split(" ");
if (action == "Change") {
userObj[uid] = userName;
} else if (action == "Enter") {
userObj[uid] = userName;
uidActions.push([uid, actionType[action]]);
} else if (action == "Leave") {
uidActions.push([uid, actionType[action]]);
}
}
for (let i = 0; i < uidActions.length; i++) {
const [uid, actionStr] = uidActions[i];
const userActionStr = `${userObj[uid]}님이 ${actionStr}`;
answer.push(userActionStr);
}
return answer;
}
- 소요시간 : 15분
접근방법
-
모든 사용자를 닉네임이 아닌 uid로 저장한다.
-
사용자의 uid와 닉네임이 각각 key-value인 자료구조로 저장한다.
-
사용자 데이터와 사용자의 action 데이터를 각각 저장 후, action 데이터를 출력할 때 사용자의 닉네임을 가져와 출력한다.
-
함정은 uid가 항상
uid
로 시작하지 않는다는거다!!!조건에 없었는데 너무 당연한것처럼 uid를 지우고 해서 찾는데 꽤 걸림…