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

코뉴·2021년 10월 28일
0

프로그래머스🍳

목록 보기
5/10

2021 카카오 채용연계형 인턴십
https://programmers.co.kr/learn/courses/30/lessons/81301


🥚문제


🥚입력/출력


🧂아이디어

  • 주어진 숫자-영단어표를 참고해서 영단어를 Key로, 숫자를 value로 갖는 HashMap을 구성한다
    • 영단어를 숫자로 변환하는 것이 목적이므로 영단어를 key로!
  • 영단어 zero, one, two, ... eight, nine까지 어떤 문자가 다른 문자에 포함되는 경우 (e.g., hell and hello)가 없으므로
    replaceAll을 통해 간단하게 대체할 수 있을 것이다!

🍳코드

import java.util.HashMap;

class Solution {
    
    private static HashMap<String, String> map = new HashMap<>();
    
    public int solution(String s) {
        // map 구성
        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;
    }
}


🍵추가

class Solution {
    public int solution(String s) {
        String[] strArr = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};
        for(int i = 0; i < strArr.length; i++) {
            s = s.replaceAll(strArr[i], Integer.toString(i));
        }
        return Integer.parseInt(s);
    }
}

다른사람들 풀이도 찾아보니 배열을 문자열 배열 딱 하나만 포함하고, 그 index를 활용하는 법도 있었다!

profile
코뉴의 도딩기록

0개의 댓글

관련 채용 정보