[JAVA/프로그래머스] 옹알이(1)

윤소영·2024년 3월 29일
0

JAVA

목록 보기
37/41

문제


옹알이(1)

문제 답안

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

답안 풀이

처음에는 옹알이 배열을 만들어줬는데 생각해보니까 그럴 필요는 없다는 생각이 들어서 각각 조건문을 만들어줬는데, 또 생각해보면 if문도 필요없다.

처음에는

babbling[i].replace("aya", "");

이렇게 해줬는데 1. babbling[i] = 어쩌구 이런식의 선언 필요
2. ""로 대체해주면 wyeoo 같은 경우에 ye가 ""로 바뀌면서 woo가 돼서 이것도 ""로 대체되버리면서 틀리게 된다.

그래서 " "로 바꿔주고 공백을 세면서 이것의 갯수가 string의 length와 같아지면 answer++

이과정에서 charAt()을 써줬는데

* 주의 할 점!

babbling[i].charAt(j) == " "

이렇게 하면 " "는 string과의 비교여서 오류가 난다

" " : string
' ' : char
equals() : string을 비교할 때 쓴다

참고 할 만한 코드

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        for(int i=0; i<babbling.length; i++){
            if(babbling[i].matches("^(aya(?!aya)|ye(?!ye)|woo(?!woo)|ma(?!ma))+$")){
                answer++;
            }
        }
        return answer;
    }
}

matches() : 정규 표현식을 써야하며, 특정 패턴이 포함되는지를 boolean으로

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;

        for(int i =0; i < babbling.length; i++) {
            babbling[i] = babbling[i].replace("aya", "1");
            babbling[i] = babbling[i].replace("woo", "1");
            babbling[i] = babbling[i].replace("ye", "1");
            babbling[i] = babbling[i].replace("ma", "1");
            babbling[i] = babbling[i].replace("1", "");
            if(babbling[i].isEmpty()) {
                answer = answer + 1;
            }
        }

        return answer;
    }
}

0개의 댓글