나의 풀이
function solution(record) {
const userInfo = {};
const action = [];
const stateMapping = {
'Enter': '님이 들어왔습니다.',
'Leave': '님이 나갔습니다.'
}
record.forEach((v) => {
const [state, id, nick] = v.split(' ');
if(state !== "Change") {
action.push([state, id]);
}
if(nick) {
userInfo[id] = nick;
}
})
return action.map(([state, uid]) => {
return `${userInfo[uid]}${stateMapping[state]}`;
})
}
forEach로 record 배열의 값들을 구조분해할당으로 나눴다.
Change는 닉네임을 변경하기 위해 조건식을 줬으며, userInfo에 객체 형태로 id를 키로 nick을 값으로 넣어줬다.
바꾼 닉네임을 id와 매치 시켜둔 상태로 action 배열에 담아둔 state와 id를 대조시켜 action배열에 문구를 담아 테스트 통과를 했다.
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스] 폰켓몬 (0) | 2022.07.28 |
---|---|
[프로그래머스] 소수 만들기 (0) | 2022.07.28 |
[프로그래머스] 문자열 압축 (0) | 2022.07.27 |
[프로그래머스] 숫자 문자열과 영단어 (0) | 2022.07.21 |
[프로그래머스] 로또의 최고 순위와 최저 순위 (0) | 2022.07.20 |