본문 바로가기
코딩테스트 연습

문자열 묶기

by 신재은👩🏼‍💻 2024. 4. 21.

문제 설명
문자열 배열 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 어쩌구 하는데 귀찮아서 더 알아보진 않았다.

 

그냥 점수 상관 없이 되도록 한 방에 성공한다는 의지로 풀어야겠다.

'코딩테스트 연습' 카테고리의 다른 글

세 개의 구분자  (0) 2024.04.22
주사위 게임 3  (0) 2024.04.22
7의 개수  (0) 2024.04.20
2차원으로 만들기  (0) 2024.04.20
1로 만들기  (0) 2024.04.20