작성일 : November 2, 2021 January 9, 2022
문제 : https://programmers.co.kr/learn/courses/30/lessons/42888
해설 : https://kis6473.tistory.com/167
// 21/11/02
정확성: 3.1
효율성: 0.0
합계: 3.1 / 50
function solution(record) {
let map = [];
let answer = [];
let split = record.map(str => str.split(' '));
split.forEach(arr => {
if(arr[0] === 'Enter') {
map.forEach(tmp => {
if(tmp.id === arr[1]) {
tmp.name=arr[2];
}
})
map.push({
id:arr[1],
name:arr[2],
act:'님이 들어왔습니다.'
});
}
if(arr[0] === 'Leave') {
let tmp = map.filter(obj => obj.id === arr[1]);
map.push({
id:arr[1],
name:tmp.name,
act:'님이 나갔습니다.'
});
}
if(arr[0] === 'Change') {
map.forEach(tmp => {
if(tmp.id === arr[1]) {
tmp.name=arr[2];
}
})
}
});
answer = map.map(arr => arr.name + arr.act);
return answer;
}
January 9, 2022
function solution(record) {
var answer = [];
record.forEach(str => {
const [command, id, name] = str.split(' ');
switch(command) {
case 'Enter' : {
answer.push({name, id, message: '님이 들어왔습니다.'});
break;
}
case 'Leave' : {
const getName = answer.filter(obj => obj.id === id)[0].name;
answer.push({name:getName, id, message: '님이 나갔습니다.'});
break;
}
case 'Change' : {
answer.map(obj => {
if(obj.id === id) return {...obj, name:name};
//return obj;
})
}
}
console.log(answer.map(obj => obj.name+obj.message));
});
return answer.map(obj => obj.name+obj.message);
}
function solution(record) {
var answer = [];
var member = new Map();
record.forEach(str => {
const [command, id, name] = str.split(' ');
if(command === 'Leave') {
answer.push([id, '님이 나갔습니다.']);
return; // 나갈때는 이름을 다시 기록하지 않는다
// Leave 할때는 id만 입력 받기 때문 🚨
}
if(command === 'Enter') {
answer.push([id, '님이 들어왔습니다.']);
}
member.set(id, name);
})
return answer.map(arr => member.get(arr[0])+arr[1]);
}
new Map()
– 맵을 만듭니다.map.set(key, value)
– key
를 이용해 value
를 저장합니다.