코테

[프로그래머스] 옹알이

chaerrii 2024. 1. 2. 17:09

문제 

머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

풀이

replace를 사용해서 발음할 수 있는 단어들을 공백으로 대체한다.

["aya", "yee", "u", "maa", "wyeoo"] 라고 치면,

"aya" ->" "

"yee"-> " e"

"u" -> "u"

"maa -> " a"

"wyeoo" -> "w oo"

[ " ", " e", "u",  " a", "w oo"]

로 배열이 바뀌게 되고, 문자열이 공백 " " 인 것들은 발음을 할 수 있다는 것이므로 그것만 세면 된다.

if(babbling[i].replace(" ","").equals("")){
                answer++;

}

" " 인것을 ""로 바꾸고, 문자열이 ""인 것은 발음을 할 수 있다고 정했다.

전체 코드 

public class Solution {
    public int solution(String [] babbling){
        int answer = 0;
        String [] canBabbling = {"aya", "ye", "woo", "ma"};
        for(int i=0; i< babbling.length; i++) {
            for (int j = 0; j < canBabbling.length; j++) {
                babbling[i] = babbling[i].replace(canBabbling[j]," ");
            }
            if(babbling[i].replace(" ","").equals("")){
                answer++;
            }
        }
        return answer;
    }
}

 

replace 와 replaceAll

String replace(CharSequence old, CharSeqeunce new): old 문자열을 새로운 문자열인 new로 모두 바꾼 문자열을 반환한다.

String replaceAll(String regex,String replacement): 문자열 중 지정된 문자열 regex과 일치하는 것을 새로운 문자열로 모두 변경한다.

- replaceAll은 정규식 적용 가능