코드문제풀이/JAVA

[자바] 옹알이 (2)

똥쟁이핑크 2023. 8. 21. 21:37

https://school.programmers.co.kr/learn/courses/30/lessons/133499

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

문제설명

머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

 

나의 문제 풀이

1) 옹알이는 하는 단어 4개를 각각 변수에 담아준다.

2) 혹시나 변수가 연속적으로 나오면 수를 세지 않고 넘어간다.

3) 각각의 변수가 나올 때마다 일치 하면 1로 바꿔주면서 없애고 1이 된것은 없애버린다.

4) 일치하는 단어를 없애고 나면 0이 되므로 answer에 더해준다.

5) 최종적으로 말할수 있는 단어는 answer가 된다.

 

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
        String a = "aya";
        String b = "ye";
        String c = "woo";
        String d = "ma";
        for (String bb : babbling) {
            if (bb.contains(a + a) ||
                    bb.contains(b + b) ||
                    bb.contains(c + c) ||
                    bb.contains(d + d)) {
                continue;
            }
            bb = bb.replace(a, "1");
            bb = bb.replace(b, "1");
            bb = bb.replace(c, "1");
            bb = bb.replace(d, "1");
            bb = bb.replace("1", "");
            if (bb.length() == 0) {
                answer++;
            }
        }
        return answer;
    }
}