-
문제
https://programmers.co.kr/learn/courses/30/lessons/42888
코딩테스트 연습 - 오픈채팅방
오픈채팅방 카카오톡 오픈채팅방에서는 친구가 아닌 사람들과 대화를 할 수 있는데, 본래 닉네임이 아닌 가상의 닉네임을 사용하여 채팅방에 들어갈 수 있다. 신입사원인 김크루는 카카오톡 오
programmers.co.kr
How to Solve?
1) 문제를 올바르게 이해했는가?
입장, 퇴장, 이름 변경이 모두 마무리 된 이후에, 사용자가 보는 로그를 보여줘라
2) 어떻게 풀 것인가?
최종의 상태를 보여주는 것이기 때문에, 결과적으로 생각해보면 [uid]에 해당하는 [name]을 출력 해주면 된다.
그렇기 때문에, Object를 이용해서 문제를 해결 할 수 있었다.
3) Is it JavaScriptive?
저번에 배웠던 "구조 분해 할당" 및 Switch문을 이용하여 가독성 높은 코드가 나왔다고 생각합니다.
function solution(record) { const answer = []; const map = {}; for (let i = 0; i < record.length; i++) { const [command, uid, name] = record[i].split(" "); switch (command) { case "Enter": answer.push([uid, "님이 들어왔습니다."]); map[uid] = name; break; case "Leave": answer.push([uid, "님이 나갔습니다."]); break; case "Change": map[uid] = name; break; } } return answer.map((ele) => map[ele[0]] + ele[1]); }
'PS > 프로그래머스' 카테고리의 다른 글
[프로그래머스_Lv2] 예상 대진표 ( by using JavaScript ) (0) 2021.05.21 [프로그래머스_Lv2] 실패율 ( by using JavaScript ) (0) 2021.05.21 [프로그래머스_Lv2] 문자열 압축 ( by using JavaScript ) (0) 2021.05.20 [프로그래머스] 로또의 최고 순위와 최저 순위 ( by using JavaScript ) (0) 2021.05.18 [프로그래머스] 폰켓몬 ( by using JavaScript ) (0) 2021.05.18 댓글