[작성일: 2023. 10. 26]
풀이
import java.util.ArrayList;
import java.util.List;
class Solution {
public String[] solution(String myStr) {
List<String> answer = new ArrayList<>();
StringBuilder sb = new StringBuilder();
for (int i = 0; i < myStr.length(); i++) {
if (myStr.charAt(i) == 'a' || myStr.charAt(i) == 'b' || myStr.charAt(i) == 'c') {
if (sb.length() > 0) {
answer.add(sb.toString());
sb.setLength(0);
}
} else {
sb.append(myStr.charAt(i));
}
}
if (sb.length() > 0) {
answer.add(sb.toString());
}
if (answer.isEmpty()) {
answer.add("EMPTY");
}
return answer.stream().toArray(String[]::new);
}
}
myStr.charAt(i)가 a, b, c일 경우에는 StringBuilder sb의 길이가 0이 넘는지를 확인한다.
sb의 길이가 0이 넘는다는 것은 a, b, c가 아니었을 경우 myStr.charAt(i)가 저장되었다는 뜻이다. 저장된 문자열을 ArrayList에 추가하고 sb의 길이를 0으로 초기화한다.
그리고 for문을 나와서 다시 한 번 sb의 length가 0이 넘는지를 확인해야 하는데 마지막 문자가 a, b, c가 아닐 경우에는 ArrayList에 담기지 않기 때문이다. 또한 answer이 비어있을 경우에는 EMPTY 문자열을 저장해야 한다.