코진남

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

코딩테스트

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

woojin126 2022. 3. 22. 11:35


다음은 숫자의 일부 자릿수를 영단어로 바꾸는 예시입니다.

  • 1478 → "one4seveneight"
  • 234567 → "23four5six7"
  • 10203 → "1zerotwozero3"

이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열 s가 매개변수로 주어집니다. s가 의미하는 원래 숫자를 return 하도록 solution 함수를 완성해주세요.

참고로 각 숫자에 대응되는 영단어는 다음 표와 같습니다.

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

        for (String s1 : converter.keySet()) {
            s = s.replace(s1, converter.get(s1));
        }
        return Integer.parseInt(s);
    }

    public static void main(String[] args) {
        NumberAndEnglish n = new NumberAndEnglish();
        String s = new String("one4seven");
        int solution = n.solution(s);
        System.out.println(solution);
    }
}

 

숫자는 0 ~ 9 까지라서 Map의 Key Value에 예제를 넣어놓고

keySet과, replace 를 사용하여 해결 

'코딩테스트' 카테고리의 다른 글

프로그래머스 체육복  (0) 2022.03.30
프로그래머스 신고!  (0) 2022.03.26
프로그래머스 완주하지 못한 선수  (0) 2022.03.26
프로그래머스 키패드 문제  (0) 2022.03.23
프로그래머스 크레인 문제  (0) 2022.03.22