프로그래머스-오픈채팅방
언어 | javascript |
---|---|
Level | 2 |
문제 | 링크 |
문제설명
- 상단 링크 참조
개요
-
자료구조 해시를 사용하면 쉽게 풀리는 문제.
-
오히려 어렵게 생각하면 더 꼬였음.
코드
function solution(record) {
let changedMap = new Map();
let textArray = [];
record.forEach((log) => {
//record를 명령어 / uid / NickName으로 분해함
let sptLog = log.split(" ");
let query = sptLog[0];
let uid = sptLog[1];
let nickName = sptLog[2];
if(query === "Enter" || query === "Change"){
changedMap.set(uid, nickName);
}
});
record.forEach((log)=>{
let sptLog = log.split(" ");
let query = sptLog[0];
let uid = sptLog[1];
let nickName = sptLog[2];
if(changedMap.has(uid)){
nickName = changedMap.get(uid);
}
if(query === "Enter") {
textArray.push(`${nickName}님이 들어왔습니다.`);
} else if(query === "Leave"){
textArray.push(`${nickName}님이 나갔습니다.`);
}
});
return textArray;
}
설명이랄것도 없을 정도로 간단한 코드이다. 다른 사람의 풀이를 보니 더 간략하고 쉽게 코딩을 한것을 보고 역시 배울것이 많다고 느꼈다.
Leave a comment