코딩테스트/프로그래머스

[Lv.1]2021카카오 : 숫자 문자열과 영단어

민톨이 2024. 8. 8. 21:26
728x90

📋 문제

네오와 프로도가 숫자놀이를 하고 있습니다. 네오가 프로도에게 숫자를 건넬 때 일부 자릿수를 영단어로 바꾼 카드를 건네주면 프로도는 원래 숫자를 찾는 게임입니다.

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

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

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

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

 

📋 입출력 예시

 

📋 풀이

class Solution {
    public int solution(String s) {
        // word, num 각각 배열로 설정
        String[] word = {"zero","one","two","three","four","five","six","seven","eight","nine"};
        String[] num = {"0","1","2","3","4","5","6","7","8","9"};
        for(int i=0;i<word.length;i++){
            // s에서 word와 일치하는 값을 num으로 바꿔치기
            s = s.replaceAll(word[i],num[i]);
        }
        
        return Integer.parseInt(s);
    }
}

 

- word배열에 zero~nine문자열 담기

- num배열에 0~9 문자열로 담기 = replcae편하게 하기 위해 

- word배열 길이만큼 반복문 설정

- s에서 word[i]와 num[i] 교체하고 s에 대입

 

배열 선언하는거 스포당한 채로 풀어서 사실 온전히 내가 푼 건 아니다

 

 

'코딩테스트 > 프로그래머스' 카테고리의 다른 글

[Lv.0] 로그인 성공?  (0) 2024.08.11
[Lv.1] 음양 더하기  (0) 2024.08.08
[Lv.0] 1로 만들기  (0) 2024.08.08
[Lv.0]카운트 다운  (0) 2024.08.08
[Lv.0] 원소들의 곱과 합  (0) 2024.08.08