-
[프로그래머스] 숫자 문자열과 영단어 자바 문자비교코딩테스트 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)); }
반응형'코딩테스트' 카테고리의 다른 글
[프로그래머스] 로또의 최고 순위와 최저 순위 자바 Map과 Math.max (0) 2025.04.04 [프로그래머스] 약수의 개수와 덧셈 제곱근방식 (0) 2025.04.04 [프로그래머스] 부족한 금액 계산하기 자바 등차수열의 합 (0) 2025.04.04 [프로그래머스] 없는 숫자 더하기 자바 sort (0) 2025.04.04 [프로그래머스] 최소 직사각형 자바 Math.max Math.min (0) 2025.04.03