[프로그래머스] 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