[프로그래머스] 숫자 문자열과 영단어

The Flawless Bead·2023년 2월 10일
0

프로그래머스

목록 보기
6/20
post-thumbnail

🔗문제로 이동 👉 [숫자 문자열과 영단어]



문제를 통해 새롭게 배운 부분 OR 중요한 부분

  • indexOf() 활용
    ArrayList 자료구조에서 특정 문자의 인덱스를 반환하는 함수이다. 때문에 일반 배열의 인덱스를 반환하고자 할 때는 Arrays.asList() 를 사용해 List로 변환 후 사용해야 한다.



✅ 문제풀이

  1. 영단어를 문자열 배열에 순서대로 담는다.
  2. replaceAll을 통해 s에 포함된 영단어들을 숫자로 대치한다.
    • 영단어가 숫자로 대치된 값은, 문자열 배열에서 영단어의 인덱스 값과 같다.
    • Arrays.asList(배열).indexOf(영단어)
  3. 반환값이 int 이기 때문에 문자열에서 숫자로 형 변환 후 반환한다.
import java.util.Arrays;

class Solution {
    public int solution(String s) {
        int answer = Integer.parseInt(replaceNumber(s));
    
        return answer;
    }
    
    public static String replaceNumber(String s) {
        String[] arr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
        for(String str : arr) {
            String index = String.valueOf(Arrays.asList(arr).indexOf(str)); 
            s = s.replaceAll(str, index);
        }
        
        return s;
    }
}

profile
오늘을 살고 내일을 꿈꾸는 낭만주의자

0개의 댓글