728x90
문제 설명
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 15
- babbling의 원소에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
풀이 코드
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] availableWord = {"aya", "ye", "woo", "ma"};
// 가능한 발음 찾기
for(int i = 0; i < babbling.length; i++){
for(String word : availableWord){
babbling[i] = babbling[i].replace(word, " ");
}
//모든 공백 제거
if(babbling[i].replaceAll(" ","").equals("")) {answer ++;}
}
return answer;
}
}
풀이 방법
요약 : replace를 이용해 babbling 발음을 교체하여, babbling 외의 발음 유무를 구별해낸다.
- babbling에서 availableWord를 찾은 후, replace를 이용하여 " "(공백 1칸)으로 교체한다.
- ""을 사용할 시,
awooya
같은 경우awooya
>aya
> `` 식으로 교체되어 오류가 생긴다. 그러므로 별개의 특수문자나 공백을 이용하여 단어가 붙는 현상을 예방한다.
- 모든 availableWord를 교체한 후, 공백(특수문자) 외에 다른 발음이 있는지 확인한다.
2.1. replace(All) 을 이용하여 모든 공백(특수문자)를""
로 교체한다.
2.2. 공백(특수문자)는 = "", = Null 이 아니라,만약 공백(특수문자)뿐이면 결과가 ""가 되고, ""가 아닐 경우 발음할 수 없는 babbling이라는 의미이다.
.equlas
를 이용해야한다!(이 점을 잊어버리고 답이 나오지 않아 한참을 헤맸다. ㅠㅠ)
728x90
'프로그래밍(Programming) > 알고리즘' 카테고리의 다른 글
프로그래머스 : 스킬트리 (0) | 2022.12.21 |
---|---|
프로그래머스 : 완주하지 못한 선수 (0) | 2022.11.15 |
다음에 올 숫자 (0) | 2022.11.09 |
[프로그래머스] 평행 (0) | 2022.11.02 |
백준 1157 (0) | 2022.10.24 |