728x90

숫자를 영어로 표현한 문자열을 숫자로 바꾸어 반환

 

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

+ Recent posts