문제
숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.
숫자 /영단어
0 | zero |
1 | one |
2 | two |
3 | three |
4 | four |
5 | five |
6 | six |
7 | seven |
8 | eight |
9 | nine |
입출력 예
s | result |
"one4seveneight" | 1478 |
"23four5six7" | 234567 |
"2three45sixseven" | 234567 |
"123" | 123 |
코드
import java.util.stream.Stream;
class Solution4 {
//변환처리를 위한 배열, 순서 중요
final static String[] INDEX_TO_WORD =
{ "zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine" };
final static String NUM_STR = "0123456789";
final static int WORD_LENGTH = 10;
public static void main(String[] args) {
Solution4 s = new Solution4();
System.out.println(
s.solution("2three45sixseven")
);
}
public int solution(String s) {
return Stream.of(s).mapToInt( arg ->{
for(int i = 0 ; i < WORD_LENGTH ; i++) {
arg = arg.replace(INDEX_TO_WORD[i] , String.valueOf(NUM_STR.charAt(i)) );
}
return Integer.valueOf(arg).intValue();
}).sum();
}
}
'자료구조&알고리즘 > Level1' 카테고리의 다른 글
폰켓몬 (1) | 2022.10.15 |
---|---|
완주하지 못한 선수 (1) | 2022.10.12 |
성격 유형 검사하기 (0) | 2022.09.26 |
신고 결과 받기 (0) | 2022.09.24 |
올바른 괄호 (1) | 2022.09.23 |