
내가 작성한 코드
import java.util.*;
class Solution {
public String[] solution(String my_str, int n) {
List<String> ans = new ArrayList<>(); // 답을 담아둘 리스트
int i = 0; // 인덱스 값
while(i < my_str.length()) { // i가 my_str길이보다 커질때까지 반복
// 리스트에 문자열 인덱스 값으로 잘라서 넣기
ans.add(my_str.substring(i, Math.min(i + n, my_str.length())));
i += n; // 인덱스 값 올려주기
}
// 문자열 배열로 반환
return ans.toArray(new String[0]); // 문자열 배열의 길이가 알아서 리스트 길이로 맞춰짐
}
}
- Math.min(int1, int2)
- 입력 받은 두 개의 정수 중 더 작은 값을 사용함
다른 사람의 코드
class Solution {
public String[] solution(String my_str, int n) {
String[] answer = {};
// 배열의 길이값 구해두기
if (my_str.length() % n == 0) answer = new String[my_str.length() / n];
else answer = new String[my_str.length() / n + 1];
// 삼항연산자 사용하여 인덱스 끝값이 문자열 길이 넘어가는걸 방지
for (int i = 0; i < answer.length; i++) {
answer[i] = (i * n + n <= my_str.length() - 1 ? my_str.substring(i * n, i * n + n) : my_str.substring(i * n));
}
return answer;
}
}
Share article