본문 바로가기

Java/코딩테스트

[java/프로그래머스/120956] 옹알이(1) (.stream, .filter, .matches, .count())

✏️ 문제 설명

머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.


✏️ code

📌 .filter(b -> b.matches("^(aya|ye|woo|ma)+"))
- stream(babbling): babbling 배열을 스트림으로 변환합니다.
- filter(...): 각 문자열 b에 대해 matches(...) 조건을 검사합니다.
- b.matches("^(aya|ye|woo|ma)+"): b가 aya, ye, woo, ma만으로 이루어졌는지 확인합니다. 조건에 맞는 문자열만 스트림에 남깁니다.

📌 .count()
- 남은 문자열의 개수를 반환합니다.
public class P120956 {
    public int solution(String[] babbling) {
        return (int) java.util.Arrays.stream(babbling)
                .filter(b -> b.matches("^(aya|ye|woo|ma)+"))
                .count();
    }
}
반응형