ABOUT ME

Today
Yesterday
Total
  • [다시풀기/javascript/프로그래머스] 메뉴리뉴얼
    카테고리 없음 2023. 3. 21. 14:35
    function solution(orders, course) {
        var answer = [];
        for(let i=0;i<course.length;i++){
            let obj = {}
            let max = 0;
            for(let j=0;j<orders.length;j++)
                combi(course[i],orders[j]).map((el)=>{
                    let newWord =  el.sort().join('')
                    if(obj[newWord]){
                        obj[newWord]++;
                    }
                    else obj[newWord] = 1;
                    max = Math.max(max,obj[newWord])
                });
            let addAnswer = [];
            if(max>=2){
                for(let key in obj){
                    if(obj[key]===max){
                        addAnswer.push(key)
                    }
                }
            }
            answer.push(...addAnswer)
        }
        return answer.sort()
    }
    
    function combi(len,arr){
        const answer = [];
        const temp = Array(len);
        function DFS(L,index){
            if(L===len) answer.push(temp.slice())
            else{
            for(let i=index;i<arr.length;i++){
                temp[L] = arr[i];
                DFS(L+1,i+1);
            }
            }
        }
        DFS(0,0)
        return answer;
    }

    조합을 확인하는 방법을 알아야 풀 수 있는 문제였다.

Designed by Tistory.