Notice
Recent Posts
Recent Comments
Link
«   2025/05   »
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
Archives
Today
Total
관리 메뉴

그라가승훈

[프로그래스-코딩테스트] 숫자 문자열과 영단어 - Java 본문

Java/코딩테스트

[프로그래스-코딩테스트] 숫자 문자열과 영단어 - Java

그라가승훈 2022. 7. 20. 16:52

코딩 테스트 문제 설명

입출력 예

"one4seveneight" 1478
"23four5six7" 234567
"2three45sixseven" 234567
"123" 123

배열 s에 영단어로 되어있는 부분을 숫자로 바꾸는 문제

내 풀이

사용한 것은 replace 메서드와 Integer클래스의 toString, parseInt 이다.

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

결론

Integer.toString을 쓰지 않고 문자 배열로 숫자를 만드는 풀이도 있었다.

ex) String[] num = {"0", "1" ... "9"};

배열을 두개가 아닌 행과 열로 [0]에는 숫자 [1]에는 영문자로 하나의 배열을 사용한 풀이도 있었다.

ex) String[][] arr = {{"0","zero"}, {"1", "one"}, ... {"9", "nine"}}; 

 

해쉬맵으로 풀이한 방법도 있는데 HashMap, Map 에 대해서도 공부 해봐야겠다.

Comments