옹알이 (2) (자바) v2

김재현·2024년 5월 5일
1

알고리즘 풀이

목록 보기
84/90
post-thumbnail

문제

정답 코드

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        
        loof1: 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", " ");
            
            String[] tmp = babbling[i].split("");
            for(int j=0;j<tmp.length;j++) {
                if(!tmp[j].equals(" ")) {
                    continue loof1;
                }
            }
            answer++;
        }
        
        return answer;
    }
}

이전에 풀어볼 때의 replace라는 메서드가 생각나서 사용하였다.

예전에는 해당 문자열이 포함되어 있는 경우에 replace를 사용했는데,
위와 같이 해당 문자열이 없다면 넣어준 문자열이 그대로 반환된다는 것을 알게 되었다.

.replace(" ","") 를 했다면, 혹은 replaceAll()을 사용했다면
좀 더 간결했을 터인데... 조금 아쉽다.

그래도 예전엔 못풀었던 문제를 이제는 척척 풀 수 있으니 감회가 새롭다.

예전 풀이

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

        for (String s : babbling) {
            if (s.contains("ayaaya") || s.contains("yeye") || s.contains("woowoo") || s.contains("mama")) {
                continue;
            } else {
                if (s.contains("aya")) s = s.replace("aya", " ");
                if (s.contains("ye")) s = s.replace("ye", " ");
                if (s.contains("woo")) s = s.replace("woo", " ");
                if (s.contains("ma")) s = s.replace("ma", " ");
                if (s.contains(" ")) s = s.replace(" ", "");
                if (s.length() == 0) {
                    answer++;
                }
            }
        }
        
        return answer;
    }
}
profile
I live in Seoul, Korea, Handsome

0개의 댓글