문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
제한사항
function solution(strArr) {
let result = [];
let numCnt = strArr.map((v) => v = v.length);
let set = Array.from(new Set(numCnt));
for(let i=0; i<set.length; i++) {
let el = numCnt.filter(v => v === set[i]).length;
result.push(el)
}
return Math.max(...result)
}
function solution(strArr) {
const counter = new Map();
for (const str of strArr) {
counter.set(str.length, (counter.get(str.length) || 0) + 1);
}
return Math.max(...counter.values());
}
나는 set을 사용했는데 map을 사용한 분의 풀이이다. set은 그래도 좀 많이 사용해서 익숙한데 map도 익숙해질 수 있도록 사용을 해봐야겠다.
function solution(strArr) {
let ans = Array(31).fill(0);
for (let s of strArr) ans[s.length]++
return Math.max(...ans)
}
Map 객체나 Set 등의 데이터 구조를 사용하지 않고 풀 수 있는 방식은 전혀 생각하지 못했다. 오...! ㅇㅅㅇ