옹알이 (2)

문제


문제 풀이

아기가 할 수 있는 말은 아래와 같다.

String[] joka = {"aya", "ye", "woo", "ma"};

그리고 중복된 말은 하지 못하니 연속으로 할 수 있는 말을 필터링 할 수 있는 값을 지정한다. 

for (String ban : joka) {
    String sumBan = ban + ban;
    str = str.replaceAll(sumBan, "X");
}

그렇게 한번 걸러진 내용에서 아기가 할 수 있는 말만 변환을 시킨다. 

for (String bab : joka) {
    str = str.replaceAll(bab, "O");
}

마지막으로 해당 값에서 O이외 다른 값이 있으면 다음으로 넘어가게 한다. 

boolean check = true;
for (int i = 0; i < str.length(); i++) {
    if (!"O".equals(str.substring(i , i+1))) {
        check = false;
        break;
    }
}

if (check) answer++;

나의 답안

public static int solution(String[] babbling) {
    int answer = 0;
    String[] joka = {"aya", "ye", "woo", "ma"};

    for (String str : babbling) {
        for (String ban : joka) {
            String sumBan = ban + ban;
            str = str.replaceAll(sumBan, "X");
        }
        for (String bab : joka) {
            str = str.replaceAll(bab, "O");
        }

        boolean check = true;
        for (int i = 0; i < str.length(); i++) {
            if (!"O".equals(str.substring(i , i+1))) {
                check = false;
                break;
            }
        }

        if (check) answer++;
    }

    return answer;
}

'Programmers 문제풀이 > Lv.1' 카테고리의 다른 글

크레인 인형뽑기 게임  (0) 2023.03.24
[카카오 인턴] 키패드 누르기  (0) 2023.03.24
카드 뭉치  (0) 2023.03.23
완주하지 못한 선수  (0) 2023.03.23
덧칠하기  (0) 2023.03.23