[Programmers] Lv0 잘라서 배열로 저장하기 JAVA

2023. 1. 20. 22:40CS/자료구조 & 알고리즘

728x90

문제 출처

[프로그래머스 코딩 테스트 연습]

https://school.programmers.co.kr/learn/courses/30/lessons/120913

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제 풀이

  • 배열의 총길이는 my_str의 길이에서 n을 나눈 것을 올림 처리를 하면 된다.
  • 몫이 n개의 수가 있는 배열의 수가 나머지가 남은 문자열이다.
  • 배열의 총 길이가 정해졌기 때문에 이에 각 배열에 적절히 잘라서 넣으면 된다.
  • 이때 배열의 길이에 초과하여 접근하지 않게 마지막 인덱스에 접근을 할 때 배열의 길이에 초과하여 접근하지 않게 해 줘야 된다.

 

소스 코드

class Solution {

    public String[] solution(String my_str, int n) {
        int answer_max = (int) Math.ceil((double) my_str.length()/n);
        String[] answer = new String[answer_max];

        for (int i = 0; i < answer_max ; i++)
            answer[i] = my_str.substring(i*n, (i == answer_max - 1) ? my_str.length() : i*n+n);

        return answer;
    }
}

 

728x90