알고리즘
프로그래머스 JS | 오픈채팅방
3jun
2022. 7. 2. 06:46
출처 : 프로그래머스 코딩테스트 연습 - 2018 KAKAO BLIND RECRUITMENT - 오픈채팅방
https://programmers.co.kr/learn/courses/30/lessons/42888
❌ Solution ( 정확성 6.3)
function solution(record) {
let answer = [];
const users = [];
for( let i = 0; i < record.length; i++) {
let arr = record[i].split(' ')
if( arr[0] === 'Enter') {
users.push({ uuid: arr[1], id: arr[2]})
} else if (arr[0] === 'Leave') {
for( let j = 0; j < users.length; j++) {
if (users[j]['uuid'] === arr[1]) {
users.splice(j, 1)
}
}
} else if( arr[0] === 'Change') {
for( let j = 0; j < users.length; j++) {
if (users[j]['uuid'] === arr[1]) {
users[j]['id'] = arr[2];
}
}
}
}
for(let i = 0; i < record.length; i++) {
let arr = record[i].split(' ')
if( arr[0] === 'Enter') {
for( let j = 0; j < users.length; j++) {
if (users[j]['uuid'] === arr[1]) {
answer.push(users[j]['id'] + "님이 들어왔습니다.")
}
}
} else if (arr[0] === 'Leave') {
for( let j = 0; j < users.length; j++) {
if (users[j]['uuid'] === arr[1]) {
answer.push(users[j]['id'] + "님이 나갔습니다.")
}
}
}
}
return answer;
}
✅ Solution ( https://kis6473.tistory.com/ 님 코드 )
function solution(record) {
let answer = [];
const map = new Map();
for (let i = 0; i < record.length; ++i) {
const [state, uid, name] = record[i].split(' ');
if (state == 'Leave') {
answer.push([uid, '님이 나갔습니다.']);
continue;
}
if (state == 'Enter') {
answer.push([uid, '님이 들어왔습니다.']);
}
map.set(uid, name);
}
return answer.map(ele => map.get(ele[0]) + ele[1]);
}
참고