문제

 

숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 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

+ Recent posts