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

min·2024년 8월 22일
0

📁 알고리즘

목록 보기
1/2

🍀 문제

https://school.programmers.co.kr/learn/courses/30/lessons/81301

🍀 풀이

📌 아이디어

  1. 숫자와 영어에 대응하는 배열을 만든다. 이 때 순서와 영어가 동일하게 만든다.
  2. 전체 문장에서 해당 문자열이 존재하는지 확인하고 replace한다.

📌 코드

public class Solution {
    String[] numbers = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"};

    public int solution(String s) {
        String answer = s;

        for (int i = 0; i < numbers.length; i++) {
            String number = numbers[i];
            if (answer.contains(number)) {
                answer = answer.replace(number, String.valueOf(i));
            }
        }
        return Integer.valueOf(answer);
    }
}

📌 테스트 코드

class SolutionTest {

    @Test
    public void solution()
    {
        Solution solution = new Solution();
        Assertions.assertEquals(1478, solution.solution("one4seveneight"	));
    }
    @Test
    public void solution2()
    {
        Solution solution = new Solution();
        Assertions.assertEquals(234567, solution.solution("23four5six7"));
    }
    @Test
    public void solution3()
    {
        Solution solution = new Solution();
        Assertions.assertEquals(10203, solution.solution("1zerotwozero3"));
    }

}

📌 결과

통과

TIL

🍀 다른 사람 코드 참고

replace() 함수를 사용해서 풀었는데 사실 replaceAll() 사용하는 것이 좋아보임.

profile
기록으로 기억하기

0개의 댓글