오늘 푼 문제
2. 메뉴 리뉴얼 / Lv.2 / 시간 : 89분(시간초과)
programmers.co.kr/learn/courses/30/lessons/72411
function solution(orders, course) {
var answer = [];
let getCombination = (str,n)=>{
let len = str.length;
if(len<n) return null;
if(len===n) return [str];
else if(n===1){
return str.split('');
}
else{
let arr = [];
for(let i=0;i<=len-n;i++){
let temp = getCombination(str.slice(i+1),n-1);
temp.forEach(v=>arr.push(str[i]+v))
}
return arr
}
}
let hash = course.reduce((acc,cur)=>{
orders.forEach(order=>{
let combis = getCombination(order,cur);
if(combis) combis.forEach(combi=>{
combi = combi.split('').sort().join('');
if(acc[cur]) acc[cur][combi] = (acc[cur][combi]|0)+1;
else acc[cur] = {[combi]:1}
})
})
return acc;
},{})
let values = Object.values(hash);
let maxs = values.map(ob=>Math.max(...Object.values(ob)));
answer = values.reduce((acc,cur,i)=>{
if(maxs[i]===1) return acc;
acc = acc.concat(Object.keys(cur).filter(k=>cur[k]===maxs[i]));
return acc;
},[]).sort()
return answer;
}
조합 찾는 식 세우느라 헤맴...
'알고리즘 문제풀이' 카테고리의 다른 글
[코테 자신감 올리기 프로젝트] 레벨 1만 조진다 (0) | 2021.03.09 |
---|---|
[프로그래머스] 2021 카카오 공채 - 순위 검색 (0) | 2021.03.08 |
[프로그래머스] 2021 카카오 공채 - 신규 아이디 추천 (0) | 2021.02.19 |
[프로그래머스] 2019카카오 겨울 인턴십 - 징검다리 건너기 (0) | 2021.02.09 |
[프로그래머스] 2019카카오 겨울 인턴십 - 불량 사용자 (0) | 2021.02.08 |