알고리즘

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

winwin-k9 2023. 8. 20. 17:08

문제

머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다.

문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

풀이

옹알이에 해당하는 배열을 다른 문자로 치환해 주어서 해결하면 된다.
주의 할 점음 빈칸으로 치환하면 문제가 생긴다는 것이다.

가령 ymae라는 문자가 있다고 하자.
이때 ma라는 단어만 발음 할 수 있으므로 답은 1이다.
그러나, ma를 빈칸으로 대체하면 결국y와 e가 붙어서 ye가 발음이 된다고 판단하기에 이를 주의해야 한다.

따라서 필자는 콤마로 대체하여 split을 해도 길이가 0이면 이를 발음이 가능하다고 하였다.

  import java.lang.*;
import java.util.*;

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

        for(String s : babbling) {
            for(int i = 0; i < 4; i++) {
                s = s.replaceAll(str[i], ",");
            }

            String[] resultStr = s.split(",");
            if (resultStr.length == 0) {
                answer++;
            }

        }


        return answer;
    }
}

https://github.com/Win-9/Algorism/tree/main/programers/%EC%98%B9%EC%95%8C%EC%9D%B4(1)

728x90