목차
문제 설명
문자열 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
'JAVA > 프로그래머스 코딩테스트 입문' 카테고리의 다른 글
[프로그래머스, LV.0] 문자열 계산하기 (0) | 2024.12.11 |
---|---|
[프로그래머스, LV.0] 공 던지기 (0) | 2024.12.11 |
[프로그래머스, LV.0] 이진수 더하기 (1) | 2024.12.11 |
[프로그래머스, LV.0] 소인수분해 (0) | 2024.12.11 |
[프로그래머스, LV.0] 컨트롤 제트 (0) | 2024.12.11 |