프로그래머스 : 잘라서 배열로 저장하기

Digeut·2023년 4월 10일
0

프로그래머스

목록 보기
37/164

❔문제설명

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

⚠️제한사항

1 ≤ my_str의 길이 ≤ 100
1 ≤ n ≤ my_str의 길이
my_str은 알파벳 소문자, 대문자, 숫자로 이루어져 있습니다.

🤔아이디어

substring 사용해서 n만큼 자르면 되지 않을까?

💡코드풀이

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

정해지는 배열의 갯수를 구하는데서 헤맸다. 총 7개의 값을 2개씩 자른다고 하면 총 배열의 갯수는 4개가 된다! 그래서 배열의 갯수를 구하는 일반식은 (my_str.length()+n-1)/ n이 된다. 이렇게 될때 substring을 사용하기위해 시작번호와 끝번호도 구해야하는데, 만약 start + n의 값이 my_str.length()보다 크거나 같으면 그냥 그 문자열 전체로 배열 하나가 만들어지는 것이므로 end의 값은 문자열의 길이만큼이 되는거고, 그게 아닌 경우면 시작부터 n까지의 값으로 끊어주면 된다.

profile
개발자가 될 거야!

0개의 댓글