728x90
import java.util.regex.Pattern;
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] words = {"aya", "ye", "woo", "ma"};
String reg = "[\\-]+";
for(int i=0;i<babbling.length;i++){
for(int j=0;j<4;j++){
if(babbling[i].contains(words[j])){
if(babbling[i].contains(words[j]+words[j])) break;
babbling[i] = babbling[i].replace(words[j], "-");
j--;
}
}
if(Pattern.matches(reg, babbling[i])) answer++;
}
return answer;
}
}
처음에는 replace 함수를 이용해 단어와 일치하면 공백으로 만든 후 최종 문자열이 공백이 되는지 확인하였으나
이로 인해 가운데의 단어가 사라지면 양 끝의 문자열의 붙어 새로운 단어가 생기는 문제가 발생하였다.
이를 해결하기 위해 일치하는 문자를 공백이 아닌 다른 문자로 바꾼 뒤 최종 문자열에 해당 문자만 존재하는지 확인하는 방식으로 풀고자 했다.
따라서, 저번에 배웠던 정규표현식을 이용해 풀어봤다.
처음으로 직접 정규표현식을 사용해본게 신기했고 정규표현식을 사용하니 간편하다는 것을 느꼈다.
'알고리즘 > 코딩 테스트 문제' 카테고리의 다른 글
[프로그래머스] 달리기 경주(Java) (0) | 2023.10.22 |
---|---|
[프로그래머스] 완주하지 못한 선수(Java) (0) | 2023.10.21 |
[프로그래머스] 실패율(Java) (0) | 2023.10.17 |
[프로그래머스] 기사단원의 무기(Java) (0) | 2023.10.16 |
[프로그래머스] 소수 만들기(Java) (0) | 2023.10.13 |