-
[프로그래머스] 오픈채팅방 - javascript기타/코딩테스트 2022. 6. 26. 01:12
문제
모든 유저는 [유저 아이디]로 구분한다.
채팅방에서 닉네임을 변경하는 방법은 다음과 같이 두 가지이다.
- 채팅방을 나간 후, 새로운 닉네임으로 다시 들어간다.
- 채팅방에서 닉네임을 변경한다.
닉네임을 변경할 때는 기존에 채팅방에 출력되어 있던 메시지의 닉네임도 전부 변경된다.
나의 풀이
function solution(record) { let messages = [], answer = []; const member = {}; const content = (data) => { const typeMsg = data[0] == "Enter" ? "들어왔습니다." : "나갔습니다."; return `${member[data[1]]}님이 ${typeMsg}`; }; record.forEach((v, i) => { const data = v.split(' '); if(data[0] == 'Enter') { member[data[1]] = data[2]; messages.push(['Enter', data[1]]); } else if(data[0] == 'Change') { member[data[1]] = data[2]; } else if(data[0] == 'Leave') { messages.push(['Leave', data[1]]); } }); messages.forEach((v, i) => answer.push(content(v))); return answer; }
실행 테스트
const record = [ "Enter uid1234 Muzi", "Enter uid4567 Prodo", "Leave uid1234", "Enter uid1234 Prodo", "Change uid4567 Ryan" ]; console.log(solution(record)); /* output [ "Prodo님이 들어왔습니다.", "Ryan님이 들어왔습니다.", "Prodo님이 나갔습니다.", "Prodo님이 들어왔습니다." ] */
'기타 > 코딩테스트' 카테고리의 다른 글
[프로그래머스] 없는 숫자 더하기 - javascript (0) 2022.06.22 [프로그래머스] [1차] 비밀지도 - javascript (0) 2022.06.21 [프로그래머스] 로또의 최고 순위와 최저 순위 - javascript (0) 2022.06.21 [프로그래머스] 키패드 누르기 - javascript (0) 2022.06.16 [프로그래머스] 숫자 문자열과 영단어 - javascript (0) 2022.06.14