문제
문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ strArr 의 길이 ≤ 100,000
- 1 ≤ strArr 의 원소의 길이 ≤ 30
- strArr 의 원소들은 알파벳 소문자로 이루어진 문자열입니다.
import java.util.HashMap;
import java.util.Set;
class Solution {
public int solution(String[] strArr) {
int answer = 0;
HashMap<Integer, Integer> strLenCountMap = new HashMap<Integer, Integer>();
for(String str : strArr) {
int len = str.length();
strLenCountMap.put(len, strLenCountMap.getOrDefault(len, 0) + 1);
}
Set<Integer> strLenKey = strLenCountMap.keySet();
for(int strLen : strLenKey) {
answer = Math.max(answer, strLenCountMap.get(strLen));
}
return answer;
}
}
HashMap에 각 문자열의 길이와 그 길이의 갯수를 저장했다.
그리고 그 중 제일 큰 값을 찾아 해결했다.
출처
https://school.programmers.co.kr/learn/courses/30/lessons/181855