inblog logo
|
jjack1
    Java프로그래머스코딩테스트

    [프로그래머스] 98. 문자열 묶기

    최재원's avatar
    최재원
    Jan 07, 2026
    [프로그래머스] 98. 문자열 묶기
    💡

    문제 설명

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

    제한사항

    • 1 ≤ strArr의 길이 ≤ 100,000
      • 1 ≤ strArr의 원소의 길이 ≤ 30
      • strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다.

    입출력 예

    strArr
    result
    ["a","bc","d","efg","hi"]
    2

    입출력 예 설명

    입출력 예 #1
    • 각 문자열들을 길이에 맞게 그룹으로 묶으면 다음과 같습니다.
    문자열 길이
    문자열 목록
    개수
    1
    ["a","d"]
    2
    2
    ["bc","hi"]
    2
    3
    ["efg"]
    1
    • 개수의 최댓값은 2이므로 2를 return 합니다.
     

    코드

    import java.util.*; class Solution { public int solution(String[] strArr) { // 문자열길이, 개수 Map<Integer, Integer> map = new HashMap<>(); for(String s : strArr) { map.put(s.length(), map.getOrDefault(s.length(), 0) + 1); } return map.values().stream() .mapToInt(Integer::intValue) .max() .orElse(0); } }
    notion image

    반복을 한번만

    import java.util.*; class Solution { public int solution(String[] strArr) { // 문자열길이, 개수 Map<Integer, Integer> map = new HashMap<>(); int maxCount = 0; for (String s : strArr) { int length = s.length(); // Map 업데이트 int currentCount = map.getOrDefault(length, 0) + 1; map.put(length, currentCount); // 최대값 즉시 갱신 (추가 작업) if (currentCount > maxCount) { maxCount = currentCount; } } return maxCount; } }
    notion image
    Share article

    jjack1

    RSS·Powered by Inblog