[프로그래머스] Level0. 옹알이(1)

Benjamin·2023년 2월 22일
0

프로그래머스

목록 보기
28/58

내 풀이

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        for(int i=0; i<babbling.length; i++) {
            babbling[i] = babbling[i].replaceAll("aya", "---");
            babbling[i] = babbling[i].replaceAll("ye", "--");
            babbling[i] = babbling[i].replaceAll("woo", "---");
            babbling[i] = babbling[i].replaceAll("ma", "--");
        }
        for(int i=0; i<babbling.length; i++) {
            if(babbling[i].matches(".*[a-zA-Z].*")) answer++;
        }
        answer = babbling.length - answer;
        return answer;
    }
}

다른 풀이

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;
    }
}

예를들어 replace("aya", "")로 하면, 만약 "yayae"라는 문자열이 있을 때 가운데 aya가 사라지고 "ye"가 남게되어 replace("ye", "") 도 진행되는게 문제였다.
하지만 이 코드에서 아주 살짝 생각을 틀어 잘 풀었다.
해당 문자열을 빈값으로 대체하는게아니라 1로 대체하고, 4개의 문자열에 대한 검사가 끝나면 1을 빈값으로 다시 바꿔주는 작업을 하면 되는것이었다!

또한 Stirng은 isEmpty()로 ""값을 체크할 수 있다.

공부한 사항

isEmpty()를 String에도 쓸 수 있는줄 몰랐다.

  • String.isEmpty() : 문자열이 ""처럼 비어있을 때 true를 리턴합니다.

0개의 댓글