JAVA/프로그래머스 코딩테스트 입문

[프로그래머스, LV.0] 잘라서 배열로 저장하기

sundori 2024. 12. 11. 15:06

목차

    문제 설명

    문자열 my_str과 n이 매개변수로 주어질 때, my_str을 길이 n씩 잘라서 저장한 배열을 return하도록 solution 함수를 완성해주세요.


     

    제한사항

    • 1 ≤ my_str의 길이 ≤ 100
    • 1 ≤ n ≤ my_str의 길이
    • my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.
    import java.util.ArrayList;
    import java.util.List;
    class Solution {
        /**
         * 문자열 my_str을 길이 n씩 잘라 배열로 반환하는 메서드.
         *
         * @param my_str 처리할 문자열
         * @param n 자를 문자열의 길이
         * @return 길이 n씩 자른 문자열의 배열
         */
        public static String[] solution(String my_str, int n) {
            int length = my_str.length();
            int arraySize = (length + n - 1) / n; // 배열 크기를 n으로 나눈 몫 계산
            String[] result = new String[arraySize];
    
            for (int i = 0, index = 0; i < length; i += n, index++) {
                result[index] = my_str.substring(i, Math.min(i + n, length));
            }
    
            return result;
        }
    }

     

     

    • 입력 문자열과 자를 크기 계산:
      • length: 문자열 전체 길이를 계산한다.
      • arraySize: 결과 배열의 크기를 계산하며, (length + n - 1) / n을 사용해 남은 부분까지 고려한다.
    • 결과 배열 초기화:
      • 크기가 미리 계산된 배열을 생성하여 메모리를 효율적으로 사용한다.
    • 문자열 분할 및 저장:
      • 반복문을 사용해 n 길이만큼 잘라 배열에 저장한다.
      • Math.min을 활용해 마지막 부분 문자열의 길이를 정확히 조정한다.
    • 최종 반환:
      • 완성된 배열을 반환한다.

     

     

    728x90