728x90
📍 프로그래머스 2단계 - 오픈채팅방
⚡️ 나의 풀이
처음 문제를 풀기 전 문제 분류에 2019 KAKAO BLIND RECRUITMENT
라고 되어있어서 카카오 문제니까 어렵지 않을까?라고 했는데 어렵지 않았다. 문제의 내용은 길었지만 코드는 짧게 작성할 수 있는 문제였다. 결론적으로 반복문을 2번 사용했는데 처음 닉네임이 변경되는 모든 과정에 반복문을 한번 사용하고, 모든 기록이 처리된 마지막에 반복문을 한번 더 사용했다. 세부과정은 다음과 같다.
idInfo
는new Map()
으로 선언하여hash
값을 이용했다.status
가Enter
혹은Change
일 때idInfo
의nickName
을 변경한다.- 모든 기록이 처리된 후 채팅방 메시지를 출력한다.
status
가Enter
혹은Leave
일 때 메시지를 출력하는데, 이때2
번과정을 진행한userInfo
의nickName
을 출력한다.
728x90
function solution(records) {
var answer = [];
let idInfo = new Map();
// Create or Change id if status Enter or Change
for (let record of records){
let [status, userId, nickName] = record.split(" ");
if ((status === "Enter") || (status === "Change")) idInfo.set(userId, nickName);
}
// Finally Enter or Leave message after processed
for (let record of records){
let [status, userId] = record.split(" ");
if (status === "Enter") answer.push(`${idInfo.get(userId)}님이 들어왔습니다.`);
else if (status === "Leave") answer.push(`${idInfo.get(userId)}님이 나갔습니다.`);
}
return answer;
}
반응형
'Algorithm > 프로그래머스(Programmers)' 카테고리의 다른 글
[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 가장 큰 수 (0) | 2022.03.23 |
---|---|
[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 올바른 괄호 (0) | 2022.03.23 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 다리를 지나는 트럭 (0) | 2021.10.26 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level2 - 기능개발 (0) | 2021.10.22 |
[ 자바스크립트(JavaScript) ] 프로그래머스 level1 - 모의고사 (0) | 2021.10.21 |
댓글