본문 바로가기

프로그래머스(Java)/Level 0

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

728x90

코드 힌트

  1. 문자열 길이별 개수 세기:
    • 문자열 배열의 각 문자열 길이를 기준으로 그 길이의 문자열 개수를 저장하는 배열을 사용합니다.
  2. 문자열 길이에 대한 인덱스 활용:
    • 문자열의 길이를 인덱스로 사용하여 개수를 저장합니다. 예를 들어, 길이가 5인 문자열은 lenArr[5]에 저장됩니다.
  3. 배열의 최대 값 찾기:
    • 문자열 길이에 따른 개수를 저장한 배열에서 가장 큰 값을 찾습니다. 이 값이 가장 많이 나타난 문자열 길이의 개수를 나타냅니다.

 


정답은 더보기 클릭

더보기
class Solution {
    public int solution(String[] strArr) {
        // 문자열 길이에 따라 문자열 개수를 저장할 배열을 초기화합니다.
        // 최대 길이 30을 고려하여 31 크기로 설정합니다.
        int[] lenArr = new int[31]; // 31인 이유: 인덱스가 0부터 시작하기 때문에

        // 주어진 문자열 배열을 순회하면서 각 문자열의 길이에 따라 lenArr 배열의 해당 인덱스를 증가시킵니다.
        for (String s : strArr) {
            lenArr[s.length()]++;
        }
        
        int result = 0;
        
        // lenArr 배열을 순회하면서 가장 큰 값을 찾습니다.
        // 이 값이 가장 많이 나타난 문자열 길이의 개수를 나타냅니다.
        // 정렬하고 배열 맨 뒷 요소를 가지고 와도 상관없습니다.
        for (int i = 0; i < lenArr.length; i++) {
            if (result < lenArr[i]) {
                result = lenArr[i];
            }
        }
        
        return result; // 가장 많이 나타난 문자열 길이의 개수를 반환합니다.
    }
}
728x90