코딩테스트
[프로그래머스/javascript] 오픈채팅방 (다시 풀어보기)
_서리__
2023. 3. 3. 10:05
function solution(record) {
record = record.map((el)=>el.split(" "))
var answer = [];
let ids = {};
let index = {};
let id = ''
//index를 저장해놓고,
for(let i=0;i<record.length;i++){
id = record[i][1]
if(!ids[id]) ids[id] = record[i][2];
if(!index[id]) index[id] = [];
index[id].push(i)
if(record[i][0]==="Change"||(record[i][0]==="Enter"&&ids[id]&&ids[id]!==record[i][2])){
index[id].map((el)=>{
if(el<i){
record[el][2] = record[i][2];
ids[id] = record[i][2]
}
}
)
}else if(record[i][0]==="Leave"){
record[i][2] = ids[id]
}
}
for(let i=0;i<record.length;i++){
if(record[i][0]==="Enter"){
answer.push(`${record[i][2]}님이 들어왔습니다.`)
}else if(record[i][0]==="Leave"){
answer.push(`${record[i][2]}님이 나갔습니다.`)
}
}
return answer;
}
더 나은 풀이법이 있다 다시 풀어볼것 결은 비슷한듯