숫자 문자열과 영단어

문제


문제풀이

숫자와 영문자열을 배열로 담아두고 s를 비교하여 같은 값이 있을 때 해당 값으로 변경하는 방식으로 접근.


나의 답안

public static int solution(String s) {
    String[] eng = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

    for (int i = 0; i < eng.length; i++) {
        s = s.replaceAll(eng[i], Integer.toString(i));
    }

    return Integer.parseInt(s);
}

다른 답안

public static int solution(String s) {
    String answer = "";
    String[] eng = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

    while (true) {
        int len = 0;
        for (int i = 0; i < s.length(); i++) {
            if (s.charAt(i) >= '0' && s.charAt(i) <= '9') {
                answer += (char) s.charAt(i);
            } else {
                int index = 0;
                for (String num : eng) {
                    len = num.length();
                    String substring = s.substring(i, Math.min(i + len, s.length()));
                    if (num.equals(substring)) {
                        answer += index + "";
                        break;
                    }
                    index++;
                }
            }
            System.out.println("answer = " + answer);
        }
        break;
    }

    return Integer.parseInt(answer);
}

'Programmers 문제풀이 > Lv.1' 카테고리의 다른 글

두 개 뽑아서 더하기  (0) 2023.03.19
K번째수  (0) 2023.03.19
문자열 내 마음대로 정렬하기  (0) 2023.03.18
[1차] 비밀지도  (0) 2023.03.18
최소직사각형  (0) 2023.03.17