잘라서 배열로 저장하기

김세호·2022년 12월 8일
0

문제


내 풀이

cclass Solution {
    public String[] solution(String my_str, int n) {
        String[] answer = {};
        if(my_str.length()%n==0){ // my_str의 길이가 n으로 딱 나누어 떨어질 때
            answer = new String[my_str.length()/n]; // answer 배열 크기 선언
            for(int i = 0 ; i < my_str.length()/n ; i++ ){
                answer[i] = my_str.substring(n*i,n*i+n); // 순서대로 n개 단위씩 배열로 묶기
            }
        }else{ // my_str의 길이가 n으로 딱 나누어 떨어지지 않을 때
            answer = new String[(my_str.length()/n)+1]; // answer 배열 크기를 위의 경우보다 1개 추가
            for(int i = 0 ; i < my_str.length()/n ; i++ ){
                answer[i] = my_str.substring(n*i,n*i+n); // 순서대로 n개 단위씩 배열로 묶기 n*i+n > n*(i+1) 쓸 수 있음
            }
            // 나머지 자투리 부분을 전부 answer의 마지막 인덱스 배열에 담는다
            //(my_str.length()/n)*n 은 my_str.length()를 n으로 나눳을 때 몫에 n을 다시 곱한다.
            answer[my_str.length()/n] = my_str.substring((my_str.length()/n)*n);
        }
        return answer;
    }
}

다른 사람 풀이

import java.util.*;
class Solution {
    public ArrayList solution(String my_str, int n) {
        ArrayList<String> answer = new ArrayList<String>();
        int num = my_str.length()/n; // 기본 num 정의
        if(my_str.length()%n != 0){ // my_str이 n으로 나눠 떨어지지 않을때 num 정의
            num = my_str.length()/n+1;
        }
        for(int i=0; i<num; i++){
            if(i == num-1){ // 마지막 인덱스에서
                answer.add(my_str.substring(i*n)); //나머지 부분 담기
            }else{
                answer.add(my_str.substring(i*n,(i+1)*n));   
            }
        }
        return answer;
    }
}

0개의 댓글