프로그래머스

프로그래머스)옹알이(2)-자바

Jr.고래 2024. 6. 19. 09:41

 

1. 개인적인 문제 평가

문제의 내용은 귀여웠지만 상당히 난감했던 문제다 .

 

Lv1인데 조건도 자세하게 봐야하고 안 보이는 반례도 존재해서 생각이 많이 복잡했다.

 

 

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

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

2. 문제 분석

문제 설명 

조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다

 

문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

제한사항

  • 1 ≤ babbling의 길이 ≤ 100
  • 1 ≤ babbling[i]의 길이 ≤ 30
  • 문자열은 알파벳 소문자로만 이루어져 있습니다.

문제에서 ayaaya,yeye,woowoo,mama 같은 연속되는 발음은 하지 못한다고 했으니깐 최우선으로 먼저 걸러줘야한다.

먼저 걸러주지 않을 시 replace를 통해 치환할 시 연속되는 발음에 대한 필터링이 되지 않는다.

 

치환을 바로 공백으로 해버리면 "yayae" 같은 경우도 치환 순서에 따라 발음이 가능하다고 인식 되기 때문에

" "으로 먼저 치환한다 

 

3. 문제 풀이

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

            if(babbling[i].length()  == 0) 
            answer++;
        }
        
        return answer;
    }
}