안녕하세요 코딩하는 아재입니다.
오늘부터 코테 리뷰를 해보려고 합니다.
아직 초보라서 다른 개발자분 들의 코드를 분석해서 혼자 해결할 수 있게 하는게 목표입니다.
그럼 시작하겠습니다.
function solution(record) {
var answer = [];
//1. 새로운 배열을 만들어줌
let arr = record.map(a => a.split(' '));
// 2. uid와 닉네임 매치
let newArr = {};
for(let i = 0; i <arr.length; i++) {
if(arr[i].length === 3) {
newArr[arr[i][1]] = arr[i][2];
}
}
// 3. 출력
for(let i = 0; i<arr.length; i++){
if(arr[i][0] === 'Enter'){
answer.push(`${newArr[arr[i][1]]}님이 들어왔습니다.`);
} else if(arr[i][0] === 'Leave'){
answer.push(`${newArr[arr[i][1]]}님이 나갔습니다.`);
}
}
return answer;
}
let arr = record.map(a => a.split(' '));
["Enter uid1234 Muzi", "Enter uid4567 Prodo","Leave uid1234","Enter uid1234 Prodo","Change uid4567 Ryan"]
record를 map으로 돌리면서 split(' ')를 해주면 아래와 같이 새로운 배열이 주어집니다.
주의: spilit('') <- 이렇게 하지 말것!!! 이렇게 ' ' 사이를 한칸 띄어야 합니다.
let arr = [
[ 'Enter', 'uid1234', 'Muzi' ],
[ 'Enter', 'uid4567', 'Prodo' ],
[ 'Leave', 'uid1234' ],
[ 'Enter', 'uid1234', 'Prodo' ],
[ 'Change', 'uid4567', 'Ryan' ]
]
위와 같이 배열 안에 또 배열을 생성하고 각각의 값들을 하나씩 분리해 줌으로써 값을 쉽게 선택할 수 있게 됩니다.
로그를 찍어 보면 아래와 같이 사용할 수 있게 됩니다.
ex) record와 arr 비교.
console.log 내용 | console.log 결과 | |
---|---|---|
record | record[0][0] | E |
arr | arr[0][0] | Enter |
let newArr = {};
for(let i = 0; i <arr.length; i++) {
if(arr[i].length === 3) {
newArr[arr[i][1]] = arr[i][2];
}
}
let newArr = { uid1234: 'Prodo', uid4567: 'Ryan' }
for(let i = 0; i<arr.length; i++){
if(arr[i][0] === 'Enter'){
answer.push(`${newArr[arr[i][1]]}님이 들어왔습니다.`);
} else if(arr[i][0] === 'Leave'){
answer.push(`${newArr[arr[i][1]]}님이 나갔습니다.`);
}
}