본문 바로가기
🫧 코테 : CodingTest

[프로그래머스] Java : 잘라서 배열로 저장하기(substring)

by 예옹이 2024. 3. 28.

 

문제

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

 

 

입출력 예

my_str n result
"abc1Addfggg4556b" 6 ["abc1Ad", "dfggg4", "556b"]
"abcdef123" 3 ["abc", "def", "123"]

 

 

 


 

 

 

1. answer 배열의 길이 구하기

answer배열의 길이부터 구해줍니다.

my_str을 n으로 나눈 값이 길이에 해당될겁니다.

그치만 나누어떨어지지 않는다면 거기에 +1을 해준 값이 길이가 될겁니다.

if(my_str.length() % n != 0){
	length = my_str.length() / n + 1;
}
else{
	length = my_str.length() / n;
}

 

 

2. answer 배열을 for문 돌려주기

answer배열을 하나씩 채워주려면 for문을 돌려주어야 합니다.

for(int i=0; i<length; i++){

}

 

 

3. substring()을 사용해서 my_string 문자열 잘라주기

String str = "ABCDEFG";
str.substring(0, 3); // ABC 출력

 

substring()은 문자열을 자를때 사용하는 함수입니다.

이를 이용해 my_string을 잘라줍니다.

 

 

4. 예외 처리

그런데 만약 방금 자른 my_string 길이가 answer요소의 길이보다 작다면

길이오류가 납니다.

 

그래서 예외처리로 오류를 해결해줍니다.

if(my_str.length() >= n){

}
else{

}

 

 

 


 

 

코드

class Solution {
    public String[] solution(String my_str, int n) {
        int length = 0;
        
        if(my_str.length() % n != 0){
            length = my_str.length() / n + 1;
        }
        else{
            length = my_str.length() / n;
        }
        
        String[] answer = new String[length];
        
        for(int i=0; i<length; i++){
            if(my_str.length() >= n){
                answer[i] = my_str.substring(0, n);
                my_str = my_str.substring(n, my_str.length());
            }
            else{
                answer[i] = my_str;
            }
        }
        return answer;
    }
}