프로그래머스 옹알이 JAVA 풀이(문자열, 구현)

2026. 6. 10. 16:39·코테(Solved.ac + Programmers)
728x90

📌 문제 링크

 

프로그래머스

SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr


📌 문제 개요

조카는 다음 네 가지 발음만 할 수 있다.

aya
ye
woo
ma

또한 같은 발음을 연속해서 말할 수 없다.

주어진 문자열 배열에서 조카가 발음할 수 있는 단어의 개수를 구하는 문제이다.

가능
ayaye
yemawoo

불가능
ayaaya
yeye
woowoo
mama

📌 접근 방법

문자열을 하나씩 순회하면서 다음 순서로 처리했다.

  1. 연속 발음 여부 확인
  2. 발음 가능한 문자열 제거
  3. 제거 후 남은 문자가 있는지 확인
  4. 공백만 남았다면 정답 카운트 증가

📌 핵심 아이디어

연속 발음은 문제 조건상 허용되지 않는다.

if (str.contains("ayaaya") ||
    str.contains("yeye") ||
    str.contains("woowoo") ||
    str.contains("mama")) {
    continue;
}
 

연속 발음이 아니라면 발음 가능한 문자열을 모두 제거한다.

str = str.replace("aya", " ");
str = str.replace("ye", " ");
str = str.replace("woo", " ");
str = str.replace("ma", " ");
 

모든 발음이 정상적으로 제거되었다면 공백만 남게 된다.

if (str.isBlank()) {
    answer++;
}
 

📌 전체 코드

class Solution {
    public int solution(String[] babbling) {
        int answer = 0;

        for (int i = 0; i < babbling.length; i++) {
            String str = babbling[i];

            if (str.contains("ayaaya") ||
                    str.contains("yeye") ||
                    str.contains("woowoo") ||
                    str.contains("mama")) {
                continue;
            }

            str = str.replace("aya", " ");
            str = str.replace("ye", " ");
            str = str.replace("woo", " ");
            str = str.replace("ma", " ");

            if (str.isBlank()) {
                answer++;
            }
        }

        return answer;
    }
}
 

📄 정리

  • 처음에는 단일 발음과 일치하는지만 검사했지만, 실제로는 여러 발음을 이어붙인 경우도 허용된다.
  • 따라서 연속 발음 예외 처리 후 replace()로 발음 가능한 문자열을 제거하고
  • isBlank()로 최종 검증하는 방식으로 해결할 수 있었다.
728x90

'코테(Solved.ac + Programmers)' 카테고리의 다른 글

프로그래머스 자릿수 더하기 JAVA 풀이 (수학, 구현)  (0) 2026.06.12
프로그래머스 PCCP 기출문제 - 저수지 물 사용량 예측(Java)  (0) 2026.06.11
프로그래머스 시험장 나누기 JAVA 풀이 (이분 탐색, DFS, 트리)  (0) 2026.06.10
프로그래머스 문자열 나누기 JAVA 풀이 (문자열, 구현)  (0) 2026.06.09
프로그래머스 비밀지도 JAVA 풀이 (비트연산, 문자열 변환)  (0) 2026.06.09
'코테(Solved.ac + Programmers)' 카테고리의 다른 글
  • 프로그래머스 자릿수 더하기 JAVA 풀이 (수학, 구현)
  • 프로그래머스 PCCP 기출문제 - 저수지 물 사용량 예측(Java)
  • 프로그래머스 시험장 나누기 JAVA 풀이 (이분 탐색, DFS, 트리)
  • 프로그래머스 문자열 나누기 JAVA 풀이 (문자열, 구현)
PUSH → MERGE → DEPLOY
PUSH → MERGE → DEPLOY
데이터 흐름과 운영 자동화를 설계하는 백엔드 개발자
  • PUSH → MERGE → DEPLOY
    Coding Dongin
    PUSH → MERGE → DEPLOY
  • 전체
    오늘
    어제
    • MEUN
      • 코테(Solved.ac + Programmers)
      • BootCamp(JAVA)
      • JAVA
      • SpringBoot
      • JavaScript
      • JSP
      • DB(SQL)
      • React
      • HTML_CSS
      • jQuery
      • SCSS
      • GSAP
      • 설치 + 꿀팁
      • 정보처리기사 오답노트
      • 정보처리기사 기출문제
  • 블로그 메뉴

    • 홈
    • 태그
    • 방명록
  • 링크

    • GIT
  • 공지사항

  • 인기 글

  • 태그

    dp
    solved.ac
    배열
    코딩테스트
    기출문제
    시뮬레이션
    java
    완전탐색
    알고리즘
    자료구조
    정보처리기사 실기 기출문제
    정보처리기사
    springboot
    level0
    Level2
    정처기
    구현
    문자열
    정처기오답노트
    실기
    level1
    정렬
    정처기실기
    자바
    백엔드개발자
    프로그래머스
    브루트포스
    백준
    수학
    피보나치
  • 최근 댓글

  • 최근 글

  • 250x250
  • hELLO· Designed By정상우.v4.10.4
PUSH → MERGE → DEPLOY
프로그래머스 옹알이 JAVA 풀이(문자열, 구현)
상단으로

티스토리툴바