문제
프로그래머스
SW개발자를 위한 평가, 교육의 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
풀이
아기가 발음할 수 있는 4가지 발음이 존재하는데, 연속적으로 단어를 사용하지 않고 발음을 할 수 있는 단어의 수를 구하는 문제이다.
즉, 단어의 인덱스에서 word만큼의 길이를 잘라서, 발음을 할 수 있으면 인덱스를 이동하고 발음한 단어를 기록하는 방식으로 구현하면 된다고 생각했다.
1. 4가지 발음을 배열로 기록한다.
2. 단어마다 체크를 해야한다.
현재 발음한 단어, 인덱스, 발음이 가능한지 여부 변수를 기록한다.
3. idx에서 발음할 수 있는 단어의 길이만큼 자르면서, 이전 발음과 다르다면 인덱스를 이동한다.
4. 발음을 못하면, 읽을 수 없는 것으므로 boolean 변수에 가능 여부를 체크한다.
5. 발음을 할 수 있는 단어의 수를 센다.
소스코드
class Solution {
public int solution(String[] babbling) {
String[] words = {"aya", "ye", "woo", "ma"};
int answer = 0;
for (String str : babbling) {
String prev = "";
int idx = 0;
boolean isVerb = true;
while (idx < str.length()) {
boolean flag = false;
for (String word : words) {
int splitEnd = idx + word.length();
if (splitEnd > str.length()) {
splitEnd = str.length();
}
String s = str.substring(idx, splitEnd);
//발음 할 수 있을 경우,
if (s.equals(word) && !prev.equals(word)) {
prev = word;
idx += word.length();
flag = true;
break;
}
}
//네가지 발음을 못할 경우,
if (!flag) {
isVerb = false;
break;
}
}
if (isVerb) {
answer++;
}
}
return answer;
}
}
실행결과

'Problem Solving > Programmers' 카테고리의 다른 글
| [Programmers] 숫자 문자열과 영단어 - Java (2) | 2025.09.15 |
|---|---|
| [Programmers] 삼총사 - Java (0) | 2025.09.13 |
| [Programmers] 부족한 금액 계산하기 - Java (1) | 2025.08.30 |
| [Programmers] 예산 - Java (0) | 2025.08.29 |
| [Programmers] 문자열 내 p와 y의 개수 - Java (0) | 2025.08.28 |