[프로그래머스] 옹알이2

홈런볼·2023년 7월 2일
0

프로그래머스

목록 보기
5/36

문제링크

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

문제접근

문자열을 하나씩 접근해서 각각의 인덱스로 발음할 수 있는 문자인 지 판단하는 것도 좋은 접근이지만
코드가 길어질 것 같아서 replace 함수를 통해 발음 가능한 문자를 지우는 걸로 접근방향을 잡았다.

  1. 문자열을 반복하면서 발음은 연속해서 발음 못하므로 연속적인 문자를 "."로 replaceAll 한다.
    "." 를 사용한 이유는 replaceAll 함수는 내부적으로 정규식 패턴을 통해 대치할 문자열을 찾는데 정규식에서 임의의 한문자를 표현하는 "."를 사용해서 문자를 replaceAll 한다.
  2. 주어진 문자를 replace 했을 때 발음할 수 있는 문자가 지워지고 나서 발음 가능한 문자가 지워지면 안되기 때문에 ' '로 replace 한다.
  3. 마지막으로 trim을 해서 남아있는 문자의 길이를 재줌
  4. 문자의 길이가 0인 경우 발음할 수 있는 문자이기 때문에 answer 를 하나 증가시켜줌

문제풀이

 class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        for(String b : babbling){
            b = b.replaceAll("ayaaya|yeye|woowoo|mama",".");
            b = b.replace("aya"," ").replace("ye"," ").replace("woo"," ").replace("ma"," ").replace(" ","");
            if(b.length() == 0) answer++;
        }
        return answer;
    }
}

정확성 테스트

0개의 댓글