https://school.programmers.co.kr/learn/courses/30/lessons/120894
문자열에서 각 문자를 String값의 숫자로 변환한 후 String값을 정수로 변환해서 풀어주었다. 하지만, 런타임 에러가 발생하였다.
import java.util.*;
class Solution {
public Integer solution(String numbers) {
if(numbers.contains("zero")){
numbers = numbers.replace("zero","0");
}
if(numbers.contains("one")){
numbers = numbers.replace("one","1");
}
if(numbers.contains("two")){
numbers = numbers.replace("two","2");
}
if(numbers.contains("three")){
numbers = numbers.replace("three","3");
}
if(numbers.contains("four")){
numbers = numbers.replace("four","4");
}
if(numbers.contains("five")){
numbers = numbers.replace("five","5");
}
if(numbers.contains("six")){
numbers = numbers.replace("six","6");
}
if(numbers.contains("seven")){
numbers = numbers.replace("seven","7");
}
if(numbers.contains("eight")){
numbers = numbers.replace("eight","8");
}
if(numbers.contains("nine")){
numbers = numbers.replace("nine","9");
}
return Integer.parseInt(numbers);
}
}
문제를 처음 열었을 때, 반환형이 long으로 되어 있었다. 하지만, 내가 Integer로 변경해 주어 범위가 더 좁아졌고, 그로 인해서 런타임 에러가 생겼다. return type을 Long으로 변경해 주니 정답처리되었다.
import java.util.*;
class Solution {
public long solution(String numbers) {
if(numbers.contains("zero")){
numbers = numbers.replace("zero","0");
}
if(numbers.contains("one")){
numbers = numbers.replace("one","1");
}
if(numbers.contains("two")){
numbers = numbers.replace("two","2");
}
if(numbers.contains("three")){
numbers = numbers.replace("three","3");
}
if(numbers.contains("four")){
numbers = numbers.replace("four","4");
}
if(numbers.contains("five")){
numbers = numbers.replace("five","5");
}
if(numbers.contains("six")){
numbers = numbers.replace("six","6");
}
if(numbers.contains("seven")){
numbers = numbers.replace("seven","7");
}
if(numbers.contains("eight")){
numbers = numbers.replace("eight","8");
}
if(numbers.contains("nine")){
numbers = numbers.replace("nine","9");
}
return Long.parseLong(numbers);
}
}