프로그래머스 옹알이2 - 자바:https://school.programmers.co.kr/learn/courses/30/lessons/133499?language=java
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제설명
머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 30
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
- 입출력 예*
babbling result ["aya", "yee", "u", "maa"] 1 ["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"] 2
풀이
```
public class day58_babu {
public int solution(String[] babbling) {
int answer = 0;
String[] babu = {"aya", "ye", "woo", "ma"};
for (String str1 : babbling) {
if (!str1.matches(".*ayaaya.*|.*yeye.*|.*woowoo.*|.*mama.*")){
for (String str2 : babu) {
str1 = str1.replaceAll(str2, "0");
}
if (str1.matches("^[0]*$")){
answer++;
}
}
}
return answer;
}
}
```
matches의 자세한 설명은 이하의 포스트에서 참고하시길 바랍니다.
https://labfor310.tistory.com/28
Java~문자열 속 특정 문자 찾기 contains와 matches
들어가기에 앞서 자바에서 문자열 안에 특정 문자를 포함해 있는지를 확인 하는 방법으로 크게 contians와 matches의 두가지 방법이 있습니다. 이 방법의 특징과 사용 법에 대해서 정리해 보기로 합
labfor310.tistory.com
if (!str1.matches(".*ayaaya.*|.*yeye.*|.*woowoo.*|.*mama.*"))
에서 연속해서 발음 하는 경우를 제외합니다.
for (String str2 : babu) {
str1 = str1.replaceAll(str2, "0");
}
에서 옹알이에 일치하는 문자를 0으로 치환합니다.
if (str1.matches("^[0]*$")){
answer++;
}
0으로만 이루어진 문자를 카운팅합니다.
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
프로그래머스~숫자 짝꿍(Java) (1) | 2023.06.06 |
---|---|
프로그래머스~삼총사(Python) (0) | 2023.06.06 |
프로그래머스~행렬의 덧셈(Python) (0) | 2023.06.06 |