본문 바로가기
코딩테스트/자바 Level 0

[Java] 문자열 묶기

by onggury 2023. 7. 22.

문제

문자열 배열 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