[프로그래머스] Lv1. 신고 결과 받기 - JavaScript

이상돈·2023년 3월 13일
0
post-thumbnail

문제분류 : 코팅테스트 연습

난이도 : Level 1

출처 : 프로그래머스 - 신고 결과 받기

문제

제한사항

📌 내가 생각한 풀이

Obj를 이용하여, 신고받은 사람 : [신고한 사람]을 배열로 저장하고, 신고받은 사람의 신고한사람 배열의 길이가 k가 넘어가면, people[신고한 사람] 에 값을 1 증가 시켜 해당 문제를 해결하자.
function solution(id_list, report, k) {
    var answer = [];
    let newReport = new Set(report);
    let newReports = [...newReport];
    let bannedList = {};
    let people = {};
    id_list.map((data)=>{
        people[data] = 0;
    })
    
    newReports.map((data,idx)=>{
        let splited = data.split(' ');
        if(bannedList[splited[1]] == undefined){
            bannedList[splited[1]] = [splited[0]];
        }else{
            bannedList[splited[1]] = [...bannedList[splited[1]], splited[0]]     
        }
       
    })
    for(var i =0; i<id_list.length; i++){
        let key = id_list[i];
        if(bannedList[key] != undefined){
            if(bannedList[key].length >= k ){
                let arr = bannedList[key];
                arr.map((d)=>{
                    people[d]++;
                })
            }
            
        }
  
    }
    return answer = Object.values(people)
}

📌 느낀점

생각보다 쉽게 풀 수 있었던 문제이다. obj를 사용하여 신고횟수를 생각하는게 조금 어려웠지만, 10분내로 풀었다.

profile
사람들의 더 나은 삶을 위한 개발자

0개의 댓글