안녕하세요.
62회차 과제 옹알이(2)입니다.
문제
머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한 사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 30
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
풀이
class Solution {
public int solution(String[] babbling) {
int answer = 0;
for (String str : babbling) {
if (str.matches(".*(ayaaya|yeye|woowoo|mama).*")) {
continue;
}
String replacedStr = str.replaceAll("aya|ye|woo|ma", "");
if (replacedStr.isEmpty()) {
answer++;
}
}
return answer;
}
}
Learned
str.matches()
-. str 문자열이 패턴과 일치하는지 확인합니다.
-. 시작위치 .* : 문자열의 앞부분에 임의의 문자가 0개 이상 있을 수 있음을 표현합니다.
-. 끝위치 .* : 문자열의 뒷부분에 임의의 문자가 0개 이상 있을 수 있음을 표현합니다.
-. (ayaaya|yeye|woowoo|mama) : 4개의 문자열 중 하나라도 포함되는지 확인합니다.
str.matches(".(ayaaya|yeye|woowoo|mama).")
-. str문자열에 "ayaaya", "yeye", "woowoo", "mama" 중 하나라도 포함되어있으면 true를 반환하여 연속된 발음이 있음을 확인합니다.
저처럼 개발을 처음 접하시는 분들에게 이 글이 조금이나마 도움이 되길 바랍니다.
'내일배움캠프 > Daily Routine (알고리즘)' 카테고리의 다른 글
[내일배움캠프] 알고리즘 Daily Routine 64. 체육복 (0) | 2024.11.14 |
---|---|
[내일배움캠프] 알고리즘 Daily Routine 63. 숫자 짝꿍 (0) | 2024.11.12 |
[내일배움캠프] 알고리즘 Daily Routine 61. 로또의 최고 순위와 최저 순위 (0) | 2024.11.01 |
[내일배움캠프] 알고리즘 Daily Routine 60. 기사단원의 무기 (0) | 2024.10.30 |
[내일배움캠프] 알고리즘 Daily Routine 59. 덧칠하기 (0) | 2024.10.30 |
댓글