코딩테스트/Programmers
오픈 채팅방 (JS)
동띵
2025. 1. 6. 21:20
https://school.programmers.co.kr/learn/courses/30/lessons/42888?language=javascript
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
function solution(record) {
const answer = [];
const uid = {};
record.forEach(entry => {
const [action, id, nickname] = entry.split(' ');
if (action === 'Enter' || action === 'Change') {
uid[id] = nickname;
}
})
record.forEach(entry => {
const [action, id] = entry.split(' ');
if (action === 'Enter') {
answer.push(`${uid[id]}님이 들어왔습니다.`);
}
if (action === 'Leave') {
answer.push(`${uid[id]}님이 나갔습니다.`);
}
})
return answer;
}
유저 닉네임은 Change와 Enter 명령어에서만 결정되므로,
이 두 명령어가 호출될 때만 uid 객체에 userId를 키로 하여 닉네임을 저장했다.
이후, 닉네임이 최종적으로 업데이트된 상태에서 record를 순회하며 각 명령어에 따라 메시지를 구성해 answer 배열에 넣어주었다.