📖 문제
🧑🏻💻 풀이 과정
1) 문제 접근 및 이해
유저들의 기록에 대해서 forEach 를 이용하여 입장과 퇴장, 이름 변경에 대해 구분하여 로직을 수행하였습니다.
유저 아이디를 키값으로 갖고, 유저 이름을 값으로 하는 객체를 생성하여 관리하였습니다.
이후 로그를 map 을 이용하여 반복하였고, 유저 아이디를 유저 이름으로 변경하였습니다.
2) 알고리즘
- 문자열
3) 풀이 코드
사용 언어 - JavaScript
function solution(record) {
let answer = []; // 정답 리스트
let logs = []; // 들어가거나 나간 로그 기록들
let user = {}; // 유저 아이디 정보, 유저아이디: 이름
record.forEach(v => {
let splited = v.split(' '); // 띄어쓰기로 구분
if (splited[0] === 'Enter') { // 들어온 경우, 유저 아이디와 이름을 기록하고 로그도 기록
user[splited[1]] = splited[2]
logs.push([splited[1], '님이 들어왔습니다.'])
} else if (splited[0] === 'Leave') { // 나간 경우, 나간 기록 로그에 기록
logs.push([splited[1], '님이 나갔습니다.'])
} else { // 이름 변경한 경우, 객체에서 이름 변경
user[splited[1]] = splited[2]
}
})
answer = logs.map(v => { // 로그를 반복
v[0] = user[v[0]] // 유저 아이디를 이름으로 변경
return v.join('') // 문자열로 합쳐서 반환
})
return answer;
}
🔗 문제 링크
- https://programmers.co.kr/learn/courses/30/lessons/42888?language=javascript
※ 오류 및 오타, 다른 의견이 있는 경우 댓글을 남겨주시면 감사하겠습니다
'알고리즘 문제풀이 > JavaScript' 카테고리의 다른 글
[프로그래머스] 단어 변환 (0) | 2022.05.13 |
---|---|
[프로그래머스] 짝지어 제거하기 (0) | 2022.05.09 |
[프로그래머스] 네트워크 (0) | 2022.05.05 |
[프로그래머스] 타겟 넘버 (0) | 2022.05.05 |
[프로그래머스] 기능개발 (0) | 2022.05.04 |
댓글