[작성일: 2023. 10. 22]
풀이
import java.util.ArrayList;
import java.util.List;
class Solution {
public int[] solution(String myString) {
List<Integer> list = new ArrayList<>();
int index = 0;
for (char c : myString.toCharArray()) {
if (c == 'x') {
list.add(index);
index = 0;
} else {
index++;
}
}
list.add(index);
return list.stream().mapToInt(Integer::intValue).toArray();
}
}
toCharArray()는 문자열을 문자로 변환해서 반환해준다.
c가 x일 경우에는 index를 ArrayList에 저장하고 index를 0으로 초기화한다.
x가 아닐 경우에는 문장 길이를 알기 위해 index를 1씩 증가시킨다.
예를 들어 문장이 xabxc일 경우 맨 처음 문자가 x이므로 index는 0으로 list에 저장된다.
a, b일 때는 index가 1씩 증가했을 것이고 그 다음 x에서는 list에 index가 저장되고 다시 index는 0으로 초기화된다.
그런데 이렇게만 작성하면 맨 마지막 문장이 x가 아닐 경우에는 index가 저장되지 않으므로, for문 밖에서 index를 한 번 더 저장해준다.