https://school.programmers.co.kr/learn/courses/30/lessons/81301
문자열 변환 문제
처음 풀이는 숫자만 있을 때랑 문자열이랑 같이 있을 때를 고려해서 replaceAll로 숫자만있는건 empty상태로 만들었다
class Solution {
public int solution(String s) {
int answer = 0;
String[] num = {"zero","one","two","three","four","five","six","seven","eight","nine"};
String tmp = s.replaceAll("[0-9]", "");
if(!tmp.isEmpty()){
for(int i = 0; i < num.length; i++){
s = s.replace(num[i], String.format("%d",i));
}
answer = Integer.parseInt(s);
} else {
answer = Integer.parseInt(s);
}
return answer;
}
}
순간 반복문의 i값을 문자열로 바꾸는게 생각이 안나서 지난 보물찾기 문제에서 썼던 String.format이 생각나서 섰다. 속도가 좀 느리다...
class Solution {
public int solution(String s) {
int answer = 0;
String[] num = {"zero","one","two","three","four","five","six","seven","eight","nine"};
for(int i = 0; i < num.length; i++){
s = s.replace(num[i], Integer.toString(i));
}
answer = Integer.parseInt(s);
return answer;
}
}
replace의 target이 아니면 안바뀌기에 굳이 if문을 써서 숫자만 있을때를 처리하지 않아도 된다.
i를 문자열로 처리해줄 Integer.toString()이 있었다.