Muscardinus
메뉴 리뉴얼 본문
728x90
programmers.co.kr/learn/courses/30/lessons/72411?language=javascript
function solution(orders, course) {
const orderedCountMap = new Map();
const maxCountMap = new Map();
const courseSet = new Set(course);
const combination = (result, index, str) => {
if (courseSet.has(result.length)) {
let cnt = orderedCountMap.get(result) || 0;
orderedCountMap.set(result, ++cnt);
const max = maxCountMap.get(result.length) || 0;
if (max < cnt) maxCountMap.set(result.length, cnt);
}
for (let i = index; i < str.length; i++) combination(result + str[i], i+ 1, str);
}
orders.map((order) => order.split("").sort().join("")).forEach((order) => combination("", 0, order));
return course.map((length) => {
const max = maxCountMap.get(length);
return Array.from(orderedCountMap).filter((order) => order[0].length === length && order[1] >= 2 && order[1] === max).map((order) => order[0]);
}).flatMap((order) => order).sort();
}
728x90
'알고리즘 문제 > [프로그래머스] Lv2' 카테고리의 다른 글
이진 변환 반복하기 (0) | 2021.02.06 |
---|---|
쿼드압축 후 개수 세기 (0) | 2021.02.03 |
삼각달팽이 (0) | 2021.02.01 |
[프로그래머스] 124 나라의 숫자(Lv2) (0) | 2020.10.14 |
[프로그래머스] [3차] n진수 게임 (Lv2) (0) | 2020.07.23 |
Comments