문제 링크
https://programmers.co.kr/learn/courses/30/lessons/42888
풀이 전략
닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다
모든 유저는 [유저 아이디]로 구분한다.
[유저 아이디] 사용자가 [닉네임]으로 채팅방에 입장 - "Enter [유저 아이디] [닉네임]" (ex. "Enter uid1234 Muzi")
코드
function solution(record) {
var answer = [];
const myHm = new Map();
for(const str of record){
const [oper, uid, nick] = str.split(' ');
if(oper === 'Leave') continue;
myHm.set(uid, nick);
}
for(const str of record){
const [oper, uid, nick] = str.split(' ');
if(oper === 'Change') continue;
if(oper === 'Enter'){
answer.push(`${myHm.get(uid)}님이 들어왔습니다.`);
} else if(oper === 'Leave'){
answer.push(`${myHm.get(uid)}님이 나갔습니다.`)
}
}
return answer;
}
회고
iteration을 한번 사용해서 풀 수있을까 고민하였지만 가장 깔끔한 방법은 map에 uid를 최종적으로 저장한다음 다음 iteration을 돌면서 출력을하는 방법이었다.
더 좋은 방법이나 의견이 있으시다면 댓글 부탁드립니다 :)
'Algorithm > 프로그래머스[Programmers]' 카테고리의 다른 글
[JS] 2020카카오 : 수식 최대화 프로그래머스 LEVEL2 (0) | 2022.06.22 |
---|---|
[JS] 2020카카오 : 괄호 변환 프로그래머스 LEVEL2 (0) | 2022.06.21 |
[JS] 2021카카오 : 메뉴 리뉴얼 프로그래머스 LEVEL2 (0) | 2022.06.18 |
[JS] 2018카카오 : 압축 프로그래머스 LEVEL2 (0) | 2022.06.13 |
[JS] 2021카카오 : 거리두기 확인하기 프로그래머스 LEVEL2 (0) | 2022.06.10 |
댓글