[프로그래머스 Lv.2] 2019 KAKAO BLIND RECRUITMENT - 오픈채팅방

김민지·2023년 9월 20일
0

✨ 문제 ✨

✨ 정답 ✨

function solution(record) {
    var answer = [];
    let infos=new Object();
    for (let i=0;i<record.length;i++){
        let [action, userId, name]=record[i].split(' ')
        if (action==='Enter'){
            infos[userId]=name;
        }else if (action==='Change'){
            infos[userId]=name;
        }
    }
    for (let i=0;i<record.length;i++){
        let [action, userId, name]=record[i].split(' ');
        if (action==='Enter'){
            answer.push(infos[userId]+'님이 들어왔습니다.')
        }else if (action==='Leave'){
            answer.push(infos[userId]+'님이 나갔습니다.')
        }
        
    }
    return answer;
}


// 시간 초과 풀이
function solution(record) {
    var answer = [];
    // record에서 change를 먼저 찾자.
    // infos={이름:닉네임, 이름: 닉네임}
    // changed=[[아이디, 닉네임],[아이디, 닉네임]]
    let infos=new Object();
    let changed =[]
    for (let i=0;i<record.length;i++){
        let cut=record[i].split(' ')
        if (!Object.keys(infos).includes(cut[1])){
            infos[cut[1]]=cut[2];
        }
        if (cut[0]==='Change'){
            if (Object.keys(infos).includes(cut[1])){
                infos[cut[1]]=cut[2]
            }
        }
        if (cut[0]==='Enter'){
             if (Object.keys(infos).includes(cut[1])){
                infos[cut[1]]=cut[2]
            }
        }
    }

    for (let i=0;i<record.length;i++){
            let cut=record[i].split(' ');
            if (cut[0]==='Enter'){
                    answer.push(infos[cut[1]]+'님이 들어왔습니다.')
            }else if (cut[0]==='Leave'){
                    answer.push(infos[cut[1]]+'님이 나갔습니다.')
            }
    }
    
    return answer;
}

🧵 참고한 정답지 🧵

💡💡 기억해야 할 점 💡💡

profile
이건 대체 어떻게 만든 거지?

0개의 댓글

관련 채용 정보