[프로그래머스 오답노트 1] 메뉴리뉴얼 js

이ᄏᄋ·2021년 11월 30일
0

function solution(orders, course) {
    var answer = [];
    
    for(const order of orders){
        answer.push(order.split("").sort().join(""));
    }
    orders=[...answer];
    let subStrs=new Map()
    orders.sort((a,b)=>a.length-b.length);
    for(const order of orders){
        for(const cou of course)
            for(let i=0;i<order.length-(cou-1);i++){
                let s=order[i];
                for(let j=i+1;j<order.length-cou+2;j++){
                    s+=order.substr(j,cou-1);
                    console.log(s,order);
                    if(subStrs.has(s))
                        subStrs.set(s,subStrs.get(s)+1);
                    else{
                        subStrs.set(s,1);
                    }
                    s=order[i];
                }
            }
    }
 
    console.log(subStrs);
  
    answer.sort();
    return answer;
}
solution(		["ABCDEFG", "ABCDEFG", "BCADG", "BEDC", "CEF", "CFE"], [2, 3, 4, 5, 7]);

이렇게 하면
Map(59) {
'CE' => 5,
'CF' => 4,
'EF' => 4,
'CEF' => 4,
'BC' => 4,
'BD' => 4,
'BE' => 3,
'CD' => 4,
'DE' => 3,
'BCD' => 4,
'BDE' => 3,
'CDE' => 3,
'BCDE' => 3,
'AB' => 3,
'AC' => 3,
'AD' => 3,
'AG' => 3,
'BG' => 3,
'CG' => 3,
'DG' => 3,
'ABC' => 3,
'ACD' => 3,
'ADG' => 1,
'BDG' => 1,
'CDG' => 1,
'ABCD' => 3,
'ACDG' => 1,
'BCDG' => 1,
'ABCDG' => 1,
'AE' => 2,
'AF' => 2,
'BF' => 2,
'DF' => 2,
'EG' => 2,
'FG' => 2,
'ADE' => 2,
'AEF' => 2,
'AFG' => 2,
'BEF' => 2,
'BFG' => 2,
'CFG' => 2,
'DEF' => 2,
'DFG' => 2,
'EFG' => 2,
'ACDE' => 2,
'ADEF' => 2,
'AEFG' => 2,
'BDEF' => 2,
'BEFG' => 2,
'CDEF' => 2,
'CEFG' => 2,
'DEFG' => 2,
'ABCDE' => 2,
'ACDEF' => 2,
'ADEFG' => 2,
'BCDEF' => 2,
'BDEFG' => 2,
'CDEFG' => 2,
'ABCDEFG' => 2
}

맞아 보이지만 
abcdg 
abcfg  같은 부분은 찾을 수 없다. 
다음에 다시 풀어야 겠다. 
profile
미쳤다.

0개의 댓글