programmers

[JAVA] 문자열 묶기

아잠만_ 2024. 7. 2. 14:16

문제

문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.

풀이 - 배열

import java.util.*;
class Solution {
    public int solution(String[] strArr) {
        int answer = 0;
        int[] cnt = new int[30];
        for(int i=0; i<strArr.length; i++){
            int a = strArr[i].length();
            int save = cnt[a-1];
            cnt[a-1] = ++save;
        }
        
        for(int i=0; i<cnt.length; i++){
            if(answer<cnt[i]){
                answer=cnt[i];
            }
        }
        return answer;
    }
}

풀이 - Map

import java.util.*;
class Solution {
    public int solution(String[] strArr) {
        int answer = 0;
        Map<Integer, Integer> map = new HashMap<>();
        for(int i=0; i<strArr.length; i++){
            int a = strArr[i].length();
            int save = 1;
            if(map.containsKey(a)){
                save = map.get(a)+1;
            }
            map.put(a, save);
        }
        
        for(int i=1; i<=30; i++){
            if(map.containsKey(i)){
                if(answer<map.get(i)){
                   answer=map.get(i);
               }
            }
        }
        return answer;
    }
}