import java.util.*;
class Solution {
public int solution(String my_string) {
int answer = 0;
List<String> list = new ArrayList<>();
for (int i = 0; i < my_string.length(); i++) {
char ch = my_string.charAt(i);
StringBuilder sb = new StringBuilder();
if (Character.isDigit(ch)) {
sb.append(ch);
}
for (int j = i + 1; j < my_string.length(); j++) {
char jch = my_string.charAt(j);
if (Character.isDigit(jch)) {
sb.append(jch);
} else {
list.add(String.valueOf(sb));
i = j;
break;
}
}
}
for(int i = 0; i < list.size(); i++){
if(!list.get(i).isEmpty()) {
answer += Integer.parseInt(list.get(i));
}
}
return answer;
}
}
반토막짜리 코드였다. 이번에도 뭔가 깔끔하지 못했던 것 같다 고민을 좀 더 해보자
import java.util.*;
class Solution {
public int solution(String my_string) {
int answer = 0;
StringBuilder sb = new StringBuilder();
for(int i = 0; i < my_string.length(); i++){
char ch = my_string.charAt(i);
if(Character.isDigit(ch)){
sb.append(ch);
}else{
if(sb.length() > 0){
answer += Integer.parseInt(sb.toString());
sb.setLength(0);
}
}
}
if(sb.length() > 0){
answer += Integer.parseInt(sb.toString());
}
return answer;
}
}
sb를 쓰는데 굳이 list를 사용한 것도 깊게 생각하지 못한 부분이었던 것 같다..