본문 바로가기

코딩테스트

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

반응형

문제

 

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

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

programmers.co.kr

나의 풀이

function solution(id_list, report, k) {
    var answer = new Array(id_list.length).fill(0);
    const reportedObj = {}

    report.forEach(el=>{
        const arr = el.split(" ")
        if(reportedObj[arr[1]]){
            if(!reportedObj[arr[1]].includes(arr[0])){
                reportedObj[arr[1]].push(arr[0])    
            }
        } else{
            reportedObj[arr[1]] = [arr[0]]
        }
    })

    for( const person in reportedObj){
        if(reportedObj[person].length >= k ){
            reportedObj[person].forEach(el=>{
                answer[id_list.indexOf(el)]++
            })
        }
    }
    return answer;
}

Array를 통해 미리 배열을 id_list의 길이만큼 선언해 주어 마지막에 index값으로 정답을 쉽게 넣어 주었다.
for in 을 이용했고, includes를 통해 중복 신고를 없애주었다.(set을 사용해도 될 것 같다)
너무 어렵게 푼 것 같다..

반응형