[코딩테스트]

[프로그래머스] 옹알이(2) - Java

everydeveloper 2024. 4. 4. 21:45

문제 설명

머쓱이는 태어난 11개월 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 가지 발음과 가지 발음을 조합해서 만들 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling 매개변수로 주어질 , 머쓱이의 조카가 발음할 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

 

 

 

1. 네가지 발음 가능

2. 가지 발음 조합 가능

3. 연속해서 같은 발음 X

 

예시

babbling 에서 

1. 기본적으로 네가지 발음 찾기

2. 네가지 발음 조합된 찾기

3. 연속된 발음 제거 하기

 

 

 

구글링으로 몇개 사이트를 검색해 결과

 

해시맵이나 어레이리스트 등을 이용해서

중복되는 글을 치환하고 최종적으로 다른 문자가 없으면 카운트가 하나 올라가는 방법을 쓰는 것을 확인하고 코딩 시작!

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        String[] list = {"aya", "ye", "woo", "ma"};
        String[] list2 = {"ayaaya", "yeye", "woowoo", "mama"};
        
        for(int i = 0 ; i < babbling.length ; i++){
            for(int j = 0 ; j < list2.length; j++){
                babbling[i] = babbling[i].replaceAll(list2[j], "1");                
            }
            for(int j = 0 ; j < list.length; j++){
                babbling[i] = babbling[i].replaceAll(list[j], " ");  
            }
            for(int j = 0 ; j < list.length; j++){
                babbling[i] = babbling[i].replaceAll(" ", "");  
            }
            if(babbling[i].equals("") ) answer++;                  

        }   
        
        return answer;
    }
}

 

도중에 " "을 "" 왜 필요 했나 싶었는데

도중에 코드 실행하면 통과하지만

제출 후 채점하기에서 몇몇개에서 에러가 나서

생각해보고 질문들 확인 해보고 나서 보니

""으로만 치환하면 치환되고 나서 다른 글자들이 붙어서 새로운 조합이 되어서

" " 으로 문자들을 유지시켜주고 다 바꿔주고 나면 ""으로 바꺼주는 식으로 정리하면 되었다.