코딩테스트
[프로그래머스] 숫자 문자열과 영단어 자바 문자비교
mhui123
2025. 4. 4. 13:19
반응형
문제
주어진 문자열 s는 숫자 혹은 숫자 + 영단어로 이루어져있다.
해당 문자열을 해석하여 의미하는 숫자를 반환하시오.
접근
단어를 숫자와 매칭시킬 배열 numbers를 생성해 각 항목에 인덱스의 영어단어를 담고
s를 반복문 처리하여 글자를 비교한다.
해당 글자가 숫자면 num에 바로 추가하고 알파벳이면 spell에 저장하고 다음 값으로 넘긴다.
만약 spell이 numbers에 존재하는 값이면 해당 인덱스를 num 에 추가하고 spell을 초기화한다.
이 과정을 마친 결과값을 Integer로 변환하여 반환한다.
public int solution(String s) {
StringBuilder num = new StringBuilder();
String spell = "";
String[] numbers = new String[]{"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
for(int i = 0; i < s.length(); i++){
char c = s.charAt(i);
// 'a' : 97 ~ 'z' : 122
// '0' : 48 ~ '9' : 57
if('0' <= c && c <= '9'){
num.append(c);
} else {
spell += c;
if(spell.length() >= 3){
for(int j = 0; j < numbers.length; j++){
if(spell.equals(numbers[j])){
num.append(j);
spell = "";
}
}
}
}
}
return Integer.parseInt(String.valueOf(num));
}
반응형