이번에는 프로그래머스에서 옹알이 문제를 풀어보았습니다.
주어진 String 배열 ["aya", "ye", "woo", "ma"]의 조합으로 주어진 파라미터에서 가능한 옹알이 개수를 검증하는 문제였습니다.
주의할 점은 ayyea 이런 단어가 있을 경우 ye 발음이 가능하니 ye를 처리하고 지워버리면 aya가 남아 aya가 가능해져버리는 경우가 있습니다. 이런 것을 방지하는것이 중요한 것 같습니다.
import java.util.*;
public class BabblingNonCheating {
public int solution(String[] babbling) {
Set<String> set = Set.of("aya", "ye", "woo", "ma");
int answer = 0;
for (String target : babbling) {
if (set.contains(target)) { // 완전일치한다면 카운팅하고 패스
answer++;
} else {
for (String val : set) {
target = target.replace(val, " "); // ayyea 이런 단어가 있을 경우 ye 발음이 가능하니 ye를 처리하고 지워버리면 aya가 남아 aya가 가능해져버리는 경우 방지
}
if (target.trim().isEmpty()) { // trim을 이용해 공백 제거
answer++;
}
}
}
return answer;
}
}