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

권용환·2021년 8월 20일
0

programmers_level1

목록 보기
3/14
post-thumbnail

문제 바로가기

나의 풀이

처음에는 반복문을 돌려가면서 숫자면 넘기고, 단어면 차례대로 더해가면서 특정한 문자열이 되면 Replace로 특정한 문자열에 해당하는 값으로 변환해주면 되겠다고 생각했다.

그래서 떠오른 것이 Key, Value로 구성된 Map이었고 아래와 같은 코드를 작성하였다.

마무리할 때 Map을 다 구성하고 나서 생각해보니 그저 Key 값을 하나씩 꺼내오면서 ReplaceAll을 사용해도 된다는 생각이 들었고, 결론적으로 굳이 Map을 사용하지 않고, 배열에서 숫자인 인덱스와 그에 맞는 특정한 문자열을 적절히 나열했다면 코드 길이가 크게 단축되었을 것이라는 생각이 든다.

import java.util.HashMap;
import java.util.Map;

class Solution {
    public int solution(String s) {
        Map<String, String> map = new HashMap<>();
        map.put("zero", "0");
        map.put("one", "1");
        map.put("two", "2");
        map.put("three", "3");
        map.put("four", "4");
        map.put("five", "5");
        map.put("six", "6");
        map.put("seven", "7");
        map.put("eight", "8");
        map.put("nine", "9");

        for (String key : map.keySet()) {
            s = s.replaceAll(key, map.get(key));
        }
        int answer = Integer.parseInt(s);
        return answer;
    }
}
profile
마구 낙서하는 블로그입니다

0개의 댓글