[프로그래머스] 숫자 문자열과 영단어 (JAVA/자바)

·2021년 8월 19일
0

Algorithm

목록 보기
47/60

문제

프로그래머스>코딩테스트 연습>2021 카카오 채용연계형 인턴십>숫자 문자열과 영단어 - https://programmers.co.kr/learn/courses/30/lessons/81301

풀이

문자열을 숫자로 바꿔서 리턴해야하는 문제이다.

  1. 우선 문자열에 매칭되는 숫자를 HashMap에 전부 넣어준다.

  2. 그리고 한 글자씩 보면서

  • 숫자라면
    • 바로 결과값에 넣기
  • 숫자가 아니라면
    • 한글자씩 더해가며 숫자를 나타내는 문자열이면 (예를 들어, one) 매칭되는 숫자(1)를 결과값에 넣기

위와 같은 로직으로 구성했다!

코드

import java.util.HashMap;
class Solution {
    public int solution(String s) {

        HashMap<String, Integer> 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);

        String result = "";
        String tmp = "";
        for (int i = 0; i < s.length(); i++) {
            char now = s.charAt(i);
            if(Character.isDigit(now)){
                result += now;
                tmp = "";
            }else{
                tmp += now;
                if (map.get(tmp) != null) {
                    result += map.get(tmp);
                    tmp = "";
                }
            }
        }
        

        return Integer.parseInt(result);
    }
}

정리


🤦‍♀️ 메모

  • 단순한게 최고다. 10개의 수를 어떻게 표현해야하나 고민했는데, 각각 Map에 저장해서 있는지 없는지 판단했다~!

참고 사이트

딱히 없음

profile
당근먹고 자라나는 개발자

0개의 댓글