반응형
문제
풀이과정
최종적으로 방을 개설한 사람이 보기 위해, uid 에따른 닉네임이 저장되어 있어야하는 배열을 생성하였다.
record를 문자열별로 나눴는데,
//record[i][0] => 입장, 퇴장, 변경
//record[i][1] => 유저ID
//record[i][2] => 닉네임
다음과 같이 정리된다.
answer 결과 배열부분에 uid 와 enter leave에 따른 메세지를 같이 저장하였다.
마지막에 answer에 있는 uid를 닉네임이 저장되어있는 곳과 매칭시켜 결과를 도출하였다.
풀이코드
function solution(record) {
let users = []; // 유저의 닉네임이 저장되어있는곳
record = record.map((e) => e.split(' ')); // 문자열을 나눔
let answer = []; // 결과가 담길곳
//record[i][0] => 입장, 퇴장, 변경
//record[i][1] => 유저ID
//record[i][2] => 닉네임
for (let i = 0; i < record.length; i++) {
if(record[i][0] !== 'Leave'){
users[record[i][1]] = record[i][2]
if(record[i][0] == 'Enter'){
answer.push([record[i][1],"님이 들어왔습니다."])
}
}else{
answer.push([record[i][1],"님이 나갔습니다."])
}
}
answer = answer.map(([a,b])=> {
return ""+users[a]+b;
})
return answer;
}
후기
split 하는 부분과 for 문 부분을 하나로 합칠 수 있었는데 확인 못한점이 아쉽고
Map으로도 풀 수 있다는 점과 Object로도 풀수 있는데 다른 방법으로 생각 못한게 아쉽다.
반응형
'알고리즘' 카테고리의 다른 글
모음사전 ( 84512 /프로그래머스 / JavaScript) (0) | 2021.12.12 |
---|---|
124나라의 숫자 ( 12899 / 프로그래머스 / JavaScript) (0) | 2021.12.03 |
거리두기 확인하기 (81302 / 프로그래머스 / JavaScript) (0) | 2021.12.02 |