2026.04.07(TUE)_124일차
1. 문제
문제 설명
문자열 배열
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 합니다.
2. 풀이
class Solution {
public int solution(String[] strArr) {
int answer = 0;
int num = 0;
int rotation = 0;
while (rotation < strArr.length) {
num++;
int count = 0;
for (String s : strArr) {
if (s.length() == num) {
count++;
rotation++;
}
}
answer = Math.max(count, answer);
}
return answer;
}
}3. 다른 사람의 풀이
import java.util.*;
import java.util.stream.Collectors;
class Solution {
public int solution(String[] strArr) {
return Arrays.stream(strArr).collect(Collectors.groupingBy(String::length)).values().stream().max(Comparator.comparingInt(List::size)).orElse(Collections.emptyList()).size();
}
}Share article