[프로그래머스] Lv.0 문자열 묶기.java

hgghfgf·2023년 6월 11일
0

프로그래머스

목록 보기
144/227

문자열 묶기.java

import java.util.HashMap;
import java.util.Map;

class Solution {
    public int solution(String[] strArr) {
        Map<Integer, Integer> groupCounts = new HashMap<>(); // 각 그룹의 개수를 저장할 맵
        
        // 문자열 배열의 원소들을 그룹으로 묶고, 그룹별 개수를 계산
        for (String str : strArr) {
            int length = str.length();
            groupCounts.put(length, groupCounts.getOrDefault(length, 0) + 1);
        }
        
        int maxCount = 0; // 가장 개수가 많은 그룹의 크기
        
        // 가장 개수가 많은 그룹의 크기 찾기
        for (int count : groupCounts.values()) {
            if (count > maxCount) {
                maxCount = count;
            }
        }
        
        return maxCount;
    }
}

각 그룹의 개수를 저장할 맵인 groupCounts를 생성합니다.
문자열 배열 strArr을 순회하면서 각 문자열의 길이를 구합니다.
groupCounts에서 해당 길이의 그룹 개수를 가져와 1을 더한 후 다시 저장합니다. 만약 해당 길이의 그룹이 처음 나온 경우라면 0을 가져온 뒤 1을 더하여 저장합니다.
가장 개수가 많은 그룹의 크기를 저장할 변수 maxCount를 0으로 초기화합니다.
groupCounts의 값들을 순회하면서 maxCount보다 큰 값이 나오면 maxCount를 해당 값으로 갱신합니다.
maxCount를 반환합니다.

출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges

0개의 댓글