코딩테스트 연습 - 오픈채팅방 | 프로그래머스 (programmers.co.kr)
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
접근 : 구현
중간에 쓸모없는 반복문을 넣으면 시간 초과 발생.
효율성 있는 코드로 리팩토링 후 통과
Javascript
function solution(record) {
var answer = [];
let idLog=[];
let cmdLog=[];
let idList={};
record.forEach((v,idx)=>{
let [cmd,id,name] = v.split(" ");
if(cmd === "Enter"){
cmdLog.push(cmd);
if(id in idList){
idList[id]= name;
idLog.push(id);
} else{
idList[id] = name;
idLog.push(id);
}
} else if(cmd === "Leave"){
cmdLog.push(cmd);
idLog.push(id);
} else {
if(id in idList){
idList[id]= name;
} else {
idList[id]= name;
}
}
})
for(let i=0;i<cmdLog.length;i++){
if(cmdLog[i]==="Enter"){
answer.push(`${idList[idLog[i]]}님이 들어왔습니다.`);
} else{
answer.push(`${idList[idLog[i]]}님이 나갔습니다.`);
}
}
return answer;
}
'코딩테스트(알고리즘) > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 괄호 변환 (Javascript) (0) | 2022.07.01 |
---|---|
[프로그래머스] 멀쩡한 사각형 (Javascript) (0) | 2022.06.30 |
[프로그래머스] 문자열 압축 (Javascript) (0) | 2022.06.30 |
[프로그래머스] [1차]다트 게임 (Javascript) (0) | 2022.06.24 |
[프로그래머스] [1차]비밀지도 (Javascript) (0) | 2022.06.24 |