문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
입출력 예시 ["o", "oo", "o", "", "o", ""]에 따라, 문자열 구분 기준인 "x"가 가장 마지막일 경우 빈 문자열이 담겨야 했다.
그래서 split()을 활용해 구분자를 기준으로 배열을 반환 받은 다음, endsWith()를 활용해 해당 경우엔 Arrays.copyOf(list, list.length + 1);로 길이를 한 칸 더 늘려 배열을 복사했다. 그 다음 해당 문자열 배열의 경우 null로 초기화 되기 때문에 nullpointerexception이 발생하지 않도록 빈 문자열로 값을 변경해 준다.
원소의 길이 값이 담긴 정수형 배열을 선언, for문으로 길이 값을 읽어 저장한 다음 반환하면 된다.
import java.util.Arrays;
class Solution {
public int[] solution(String myString) {
String[] list = myString.split("x");
if(myString.endsWith("x")) {
list = Arrays.copyOf(list, list.length + 1);
list[list.length - 1] = "";
}
int[] answer = new int[list.length];
for(int i=0;i<list.length;i++){
answer[i] = list[i].length();
}
return answer;
}
}
