프로그래머스 - 숫자 문자열과 영단어

김재민·2022년 4월 27일
0

문제 간단

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

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

방향성

  1. 우선 숫자는 0~9까지만 존재하기 때문에 List배열에 담아서 비교를 할 수 있을 것이라 생각
  2. 숫자를 문자로 표현되있는 List, 숫자 자체로 이루어진 List 두개를 담을 것으로 생각
  3. 문자열을 반복문으로 쭉 돌면서 indexOf를 통한 인덱스 비교를 한 후 동일 문자열을 대체하도록 설정

CODE

static int solution(String s) {
   int answer = 0;

   String number[] = {"zero","one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

   String newNumber[] = {"0","1", "2", "3", "4", "5", "6", "7", "8", "9"};

    for(int i=0; i<number.length; i++){

     if(s.indexOf(number[i]) > -1){
                    
      s = s.replace(number[i],newNumber[i]);
      
      }
     }

     answer = Integer.parseInt(s);
     
     return answer;
        }

후기

처음에 0을 생각안하고 돌렸다가 런타임 에러가 나길래 문제를 다시 읽어보니 zero부터 였다

profile
어제의 나보다 나은 오늘의 내가 되자!🧗‍♂️

0개의 댓글