문자열 묶기😀
문자열 배열 strArr이 주어집니다.
strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
※ 제한 사항
1 ≤ strArr의 길이 ≤ 100,000
1 ≤ strArr의 원소의 길이 ≤ 30
strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다.
입출력
strArr | result |
---|---|
[“a”,”bc”,”d”,”efg”,”hi”] | 2 |
function solution(strArr) {
// 문자열을 길이별로 그룹화하기 위한 객체 생성
var groupedByLength = {};
// 주어진 배열을 순회하면서 길이별로 그룹화
strArr.forEach((str) => {
var length = str.length;
if (groupedByLength[length]) {
groupedByLength[length].push(str);
} else {
groupedByLength[length] = [str];
}
});
// 가장 큰 그룹의 크기 찾기
var maxGroupSize = 0;
for (var length in groupedByLength) {
var groupSize = groupedByLength[length].length;
if (groupSize > maxGroupSize) {
maxGroupSize = groupSize;
}
}
return maxGroupSize;
}
먼저, 문자열을 길이별로 그룹화하기 위한 빈 객체 groupedByLength를 생성합니다.
주어진 배열을 순회하면서 각 문자열의 길이를 확인하고, 해당 길이의 그룹이 이미 존재하면 그룹에 추가하고, 존재하지 않으면 새로운 그룹을 만들어 추가합니다.
모든 문자열을 그룹화한 후, 각 그룹의 크기를 비교하여 가장 큰 그룹의 크기를 찾습니다.
찾은 가장 큰 그룹의 크기를 반환합니다.
예를 들어, [“abc”, “def”, “123”, “xyz”, “456”, “uvw”, “ab”] 배열이 주어졌을 때, 문자열의 길이가 3인 그룹은 [“abc”, “def”, “uvw”]으로 세 개의 원소를 가지고 있습니다. 따라서 함수는 3을 반환합니다.