1번 방식 :
import java.util.*;
class Solution {
public int solution(String[] babbling) {
int cnt = 0;
List speak = Arrays.asList("aya", "ye", "woo", "ma");
for (String bab : babbling) {
// 변환할 발음 문자열을 순서대로 처리
boolean valid = true;
// 연속 발음 확인
for (String can : speak) {
// 발음이 두 번 연속으로 나타나는 경우
String doubleCan = can + can;
if (bab.contains(doubleCan)) {
valid = false;
break;
}
}
if (valid) {
// 발음을 모두 제거
for (String can : speak) {
bab = bab.replace(can, "");
}
// 최종적으로 빈 문자열인지 확인
if (bab.isEmpty()) {
cnt++;
}
}
}
return cnt;
}
}
2번 방식 :
import java.util.*;
class Solution {
public int solution(String[] babbling) {
int cnt = 0;
List speak = Arrays.asList("aya", "ye", "woo", "ma");
for (String bab : babbling) {
boolean valid = true;
// 연속 발음 확인
for (String can : speak) {
String doubleCan = can + can;
if (bab.contains(doubleCan)) {
valid = false;
break;
}
}
if (valid) {
// 발음을 모두 제거
for (String can : speak) {
bab = bab.replace(can, " ");
}
// 남은 문자열이 공백인지 확인
bab = bab.replace(" ", "");
if (bab.isEmpty()) {
cnt++;
}
}
}
return cnt;
}
}
1번 방식은 안되는데 2번 방식은 왜 되는걸까요ㅠㅠ 전혀 모르겠네요
? 다른 부분이 없지 않나요? 둘다 안되는군요.
잘못 올렸네요! 수정했습니다.
공백을 두지 않으면 "yayae" 같은 경우가 발음이 가능하다고 판단되어 틀리는 거 같습니다.