문제
문자열 myString이 주어집니다. myString을 문자 "x"를 기준으로 나눴을 때 나눠진 문자열 각각의 길이를 순서대로 저장한 배열을 return 하는 solution 함수를 완성해 주세요.
제한사항
- 1 ≤ myString 의 길이 ≤ 100,000
- myString 은 알파벳 소문자로 이루어진 문자열입니다.
import java.util.ArrayList;
class Solution {
public int[] solution(String myString) {
ArrayList<Integer> list = new ArrayList<>();
String[] tmp = myString.split("x");
for (int i = 0; i < tmp.length; i++) {
list.add(tmp[i].length());
}
if(myString.endsWith("x")) {
list.add(0);
}
int[] answer = new int[list.size()];
for (int i = 0; i < answer.length; i++) {
answer[i] = list.get(i);
}
return answer;
}
}
x를 기준으로 split 할 경우 마지막 x의 경우가 연산이 되지 않는다. 그래서 주어진 문자열의 마지막이 x인지를 판단해서 그렇다면 0을 추가해준다.(x를 기준으로 나눴을 때 빈 문자열이면 길이가 0이기 때문이다.)
출처
https://school.programmers.co.kr/learn/courses/30/lessons/181867