문제 설명
문자열 배열 strArr이 주어집니다. strArr의 원소들을 길이가 같은 문자열들끼리 그룹으로 묶었을 때 가장 개수가 많은 그룹의 크기를 return 하는 solution 함수를 완성해 주세요.
제한사항
1 ≤ strArr의 길이 ≤ 100,000
1 ≤ strArr의 원소의 길이 ≤ 30
strArr의 원소들은 알파벳 소문자로 이루어진 문자열입니다.
입출력 예
strArr result
["a","bc","d","efg","hi"] 2
import java.util.HashMap;
class Solution {
public int solution(String[] strArr) {
HashMap<Integer, Integer> lengthCount = new HashMap<>();
int maxGroupSize = 0;
for (String s : strArr) {
int length = s.length();
lengthCount.put(length, lengthCount.getOrDefault(length, 0) + 1);
maxGroupSize = Math.max(maxGroupSize, lengthCount.get(length));
}
return maxGroupSize;
}
}
로직 잡고 문법 틀린 거 확인 중이었는데 실행 결과가 뭔가 이상해서 다시 보니 로직이 아예 틀렸었다.
지쳐서 GPT로 풀었다.
그런데 왜 3점이 올라갔을까?
분명 테스트 실행 몇 번 실패했는데...
HashMap을 처음 쓴 것도 아니고...
검색해 보니 Elo rating system 어쩌구 하는데 귀찮아서 더 알아보진 않았다.
그냥 점수 상관 없이 되도록 한 방에 성공한다는 의지로 풀어야겠다.