728x90
📌 문제 링크
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
📌 문제 개요
조카는 다음 네 가지 발음만 할 수 있다.
aya
ye
woo
ma
또한 같은 발음을 연속해서 말할 수 없다.
주어진 문자열 배열에서 조카가 발음할 수 있는 단어의 개수를 구하는 문제이다.
가능
ayaye
yemawoo
불가능
ayaaya
yeye
woowoo
mama
📌 접근 방법
문자열을 하나씩 순회하면서 다음 순서로 처리했다.
- 연속 발음 여부 확인
- 발음 가능한 문자열 제거
- 제거 후 남은 문자가 있는지 확인
- 공백만 남았다면 정답 카운트 증가
📌 핵심 아이디어
연속 발음은 문제 조건상 허용되지 않는다.
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 |