개발야옹

[ lv3 ] 불량 사용자 (_JS) 본문

Algorithm\CodingTest/Programmers

[ lv3 ] 불량 사용자 (_JS)

kitez 2022. 1. 17. 21:08

프로그래머스 - 2019 카카오 개발자 겨울 인턴십 Lv3

불량 사용자 ( _JS )

 

문제 설명

 

제한 사항

 

입출력 예


문제 링크

https://programmers.co.kr/learn/courses/30/lessons/64064?language=javascript 

 

코딩테스트 연습 - 불량 사용자

개발팀 내에서 이벤트 개발을 담당하고 있는 "무지"는 최근 진행된 카카오이모티콘 이벤트에 비정상적인 방법으로 당첨을 시도한 응모자들을 발견하였습니다. 이런 응모자들을 따로 모아 불량

programmers.co.kr


코드

2022. 01. 11.

function solution(user_id, banned_id) {
    
const prediction_list = banned_id.map( banned => user_id.filter( user => {
        if( user.length !== banned.length ){
            // 길이가 다르면 제거
            return false;
        }
        else{
            // 길이가 같음
            for(let i = 0 ; i < banned.length ; i++){
                if( banned[i] !== '*' && user[i] !== banned[i] ){
                    // banned[i] 값이 *이 아닌데 user[i]랑 값이 동일하지 않으면 제거
                    return false;
                }
            }
            return true;
        }
    }));
const ansList = {};
    const choose = (idx = 0, choosed = []) => {
        if (idx === prediction_list.length) {
            choosed.sort();
            ansList[choosed.join('')] = true;
            return
        }

        prediction_list[idx].forEach(s => {
            if (!choosed.includes(s))
                choose(idx + 1, [...choosed, s])
        })
    }
    choose()
    return Object.keys(ansList).length;
}

 


728x90