알고리즘
프로그래머스 > 2019 KAKAO BLIND RECRUITMENT > 오픈채팅방
kwonpinky
2023. 4. 4. 00:09
728x90
https://school.programmers.co.kr/learn/courses/30/lessons/42888
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
[나의 코드]
function getNicknameMap(record) {
const map = new Map();
record.forEach((r) => {
const [action, id, nickname] = r.split(' ');
if (action === 'Enter' || action === 'Change') {
map.set(id, nickname);
}
});
return map;
}
function getAnswer(record, map) {
const answer = [];
record.forEach((r) => {
const [action, id] = r.split(' ');
if (action === 'Enter') {
answer.push(`${map.get(id)}님이 들어왔습니다.`);
} else if (action === 'Leave') {
answer.push(`${map.get(id)}님이 나갔습니다.`);
}
});
return answer;
}
function solution(record) {
const map = getNicknameMap(record);
const answer = getAnswer(record, map);
return answer;
}
map을 이용해서 enter와 change이벤트일 경우에 id와 nickname을 매핑시켜준다. Enter과 Leave 이벤트에는 매팽된 맵에서 해당 닉네임을 가져와 알맞는 메시지를 배열에 푸쉬해서 최종 리턴한다.
728x90