https://school.programmers.co.kr/learn/courses/30/lessons/120913
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
나의 풀이
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
class Solution {
public String[] solution(String my_str, int n) {
List<String> answer = new ArrayList<>();
for (int i = 0; i < (my_str.length() / n); i++) {
answer.add(my_str.substring((n * i), (n * (i + 1))));
}
if (my_str.length() % n != 0) {
answer.add(my_str.substring( (my_str.length() / n) * n));
}
return answer.toArray(new String[0]);
}
}
다른 풀이
import java.util.*;
import java.util.stream.IntStream;
class Solution {
public String[] solution(String myStr, int n) {
return IntStream.range(0, myStr.length() / n + (myStr.length() % n > 0 ? 1 : 0))
.mapToObj(i -> i == myStr.length() / n ? myStr.substring(i * n) : myStr.substring(i * n, (i + 1) * n))
.toArray(String[]::new);
}
}
class Solution {
public String[] solution(String my_str, int n) {
int resultCnt = (my_str.length() + n - 1) / n;
String[] answer = new String[resultCnt];
for (int i = 0; i < resultCnt; i++) {
int start = n * i;
int end = start + n >= my_str.length()? my_str.length(): start + n;
answer[i] = my_str.substring(start, end);
}
return answer;
}
}