티스토리 뷰

프로그래머스 LV1문제인가 2021 카카오 채용연계형 인텁십 문제이다.

 

 

 

문제 설명

 

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

이렇게 숫자의 일부 자릿수가 영단어로 바뀌어졌거나, 혹은 바뀌지 않고 그대로인 문자열을 매개변수로 주어진다.

일부 자릿수가 영단어로 변경된 것을 원래 숫자로 return 하도록 함수를 만들어라

 

숫자 영단어 숫자 영단어
0 zero 5 five
1 one 6 six
2 two 7 seven
3 three 8 eight
4 four 9 nine

 

 

 

 

 

제한 사항

 

 

 

 

 

 

입출력 예시

 

 

 

 

 

 

Solution 1)

 

String인 문자열을 Integer인 숫자로 변경하는 것이라 영문 숫자는 Key값 숫자는 Map을 이용하여 풀게 되었다.

너무 쉽게 풀릴 줄 알았는데 하나의 변수가 있었다.

map을 entrySet()을 이용해 interator로 변경했을 때

Iterator<Map.Entry<String, Integer>> 라는 생소한 자료형이 나오게 된다.

 

그래서 문제 풀 떄 당황하거나 나 말고 다른 사람이 보았을 때  엥? 이럴 것 같기 때문에 추천은 하지 않는다.

import java.util.*;
class Solution {
    public int solution(String s) {
        int answer = 0;
        String str = s;
        Map<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);

        Iterator<Map.Entry<String, Integer>> iterator = map.entrySet().iterator();
        while (iterator.hasNext()) {
            Map.Entry<String, Integer> entry = iterator.next();
            str = str.replaceAll(entry.getKey(), entry.getValue().toString());
        }
        answer = Integer.parseInt(str);

        return answer;
    }
}

 

 

 

 

 

Solution 2)

 

성능이나 가독성도 좋으며 배열로 인덱스를 이용하여 깔끔하게 풀게 되었다.

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);
    }
}

 

 

 

 

 

감사합니다.

 

 

 

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/10   »
1 2 3 4 5
6 7 8 9 10 11 12
13 14 15 16 17 18 19
20 21 22 23 24 25 26
27 28 29 30 31
글 보관함