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 배열에 넣어주었다.
'코딩테스트 > Programmers' 카테고리의 다른 글
신고 결과 받기 (JS) (0) | 2025.01.07 |
---|---|
베스트 앨범 (JS) (1) | 2025.01.06 |
표 편집 (JS) (1) | 2025.01.05 |
크레인 인형 뽑기 (JS) (0) | 2025.01.05 |
방문 길이 (JS) (0) | 2025.01.05 |