https://programmers.co.kr/learn/courses/30/lessons/81301

 

코딩테스트 연습 - 숫자 문자열과 영단어

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다. 다음은 숫자의 일부 자

programmers.co.kr

class Solution {

	String[] numWord = {"zero","one","two","three","four","five","six","seven","eight","nine"};

	public int solution(String s) {
		
        int answer = 0;
        String targetStr = "";
        
        for (int i = 0; i < s.length(); i++) {			
			if('a' <= s.charAt(i) && s.charAt(i) <= 'z') {	// 문자를 만나면
				targetStr+=String.valueOf(s.charAt(i));
				int num = findNum(targetStr);
				if(num == -1) {	// 못찾음
					continue;
				}else {	// 찾음
					answer = (answer * 10) + num;
					targetStr = "";
				}
			}else {
				answer = (answer * 10) + (s.charAt(i)-'0');	// 숫자를 만나면
			}
		}    
        return answer;
    }

	private int findNum(String targetStr) {
		int num = -1;
		for (int i = 0; i < numWord.length; i++) {
			if(targetStr.equals(numWord[i])) {
				num = i;
				break;
			}
		}
		return num;
	}
}