숫자를 영어로 표현한 문자열을 숫자로 바꾸어 반환
public long solution(String numbers) {
long answer = 0;
int len = numbers.length();
while(numbers.length()>2){
if(numbers.startsWith("zero")){
answer= answer*10;
numbers= numbers.replaceFirst("zero","");
}else if(numbers.startsWith("one")){
answer= answer*10+1;
numbers=numbers.replaceFirst("one","");
}else if(numbers.startsWith("two")){
answer= answer*10+2;
numbers=numbers.replaceFirst("two","");
}else if(numbers.startsWith("three")){
answer= answer*10+3;
numbers=numbers.replaceFirst("three","");
}else if(numbers.startsWith("four")){
answer= answer*10+4;
numbers= numbers.replaceFirst("four","");
}else if(numbers.startsWith("five")){
answer= answer*10+5;
numbers= numbers.replaceFirst("five","");
}else if(numbers.startsWith("six")){
answer= answer*10+6;
numbers= numbers.replaceFirst("six","");
}else if(numbers.startsWith("seven")){
answer= answer*10+7;
numbers= numbers.replaceFirst("seven","");
}else if(numbers.startsWith("eight")){
answer= answer*10+8;
numbers= numbers.replaceFirst("eight","");
}else if(numbers.startsWith("nine")){
answer= answer*10+9;
numbers= numbers.replaceFirst("nine","");
}
if(numbers.length()<3)break;
}
return answer;
}
앞에서부터 영어 문자를 찾아 숫자로 치환
개선
public long solution2(String numbers) {
return Long.parseLong(
numbers.replaceAll("zero", "0")
.replaceAll("one", "1")
.replaceAll("two", "2")
.replaceAll("three", "3")
.replaceAll("four", "4")
.replaceAll("five", "5")
.replaceAll("six", "6")
.replaceAll("seven", "7")
.replaceAll("eight", "8")
.replaceAll("nine", "9")
);
}
모든 영문자를 치환하고 parseLong 메소드 사용
개선
public long solution3(String numbers) {
String[] numbers_arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for (int i = 0; i < numbers_arr.length; i++) {
numbers = numbers.replaceAll(numbers_arr[i], String.valueOf(i));
}
long answer = Long.parseLong(numbers);
return answer;
}
영문을 배열로 바꾸어 반복문을 사용하고 영문은 String.valueOf로 숫자형으로 변환
'Java > Coding Test' 카테고리의 다른 글
등수 매기기 문제풀이 (0) | 2023.09.15 |
---|---|
삼각형의 완성조건(2) 문제풀이 (0) | 2023.09.15 |
공 던지기 문제풀이 (0) | 2023.09.14 |
숨어있는 숫자 덧셈(2) 문제풀이 (0) | 2023.09.13 |
외계어 사전 (0) | 2023.09.12 |