본문 바로가기
코딩테스트(알고리즘)/프로그래머스

[프로그래머스] 신고 결과 받기 (Javascript)

by Cafe Mocha 2022. 6. 23.

코딩테스트 연습 - 신고 결과 받기 | 프로그래머스 (programmers.co.kr)

 

코딩테스트 연습 - 신고 결과 받기

문제 설명 신입사원 무지는 게시판 불량 이용자를 신고하고 처리 결과를 메일로 발송하는 시스템을 개발하려 합니다. 무지가 개발하려는 시스템은 다음과 같습니다. 각 유저는 한 번에 한 명의

programmers.co.kr


접근 : 구현

 

1. set을 활용한 중복제거

2. 객체를 활용한 데이터 정리 -> Map을 활용하는 것도 좋다고 생각하지만 아직 익숙하지 않다.

Javascript

function solution(id_list, report, k) {
    let answer = new Array(id_list.length).fill(0);
    let id_count = {};
    //user ID, count
    id_list.forEach(v=>{
        id_count[v]=[0,[]];
    })
    
    //report 중복제거
    report = [...new Set(report)];
    
    report.forEach(v=>{
        let [id,report_id] = v.split(" ");
        id_count[report_id][0]++;
        id_count[id][1].push(report_id);
    });
    
    let stop = id_list.filter(v=>id_count[v][0]>=k);
    


    for(let j=0;j<id_list.length;j++){
        let ID = id_list[j];
        let tmp = id_count[ID][1];
        for(let i of stop){
            if(tmp.includes(i)) answer[j]++;
        }
    }
        

    
    
    
    return answer;
}