문제 설명
머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
1. 네가지 발음 가능
2. 네 가지 발음 조합 가능
3. 연속해서 같은 발음 X
예시
babbling 에서
1. 기본적으로 네가지 발음 찾기
2. 네가지 발음 조합된 것 찾기
3. 연속된 발음 제거 하기
구글링으로 몇개 사이트를 검색해 본 결과
해시맵이나 어레이리스트 등을 이용해서
중복되는 글을 치환하고 최종적으로 다른 문자가 없으면 카운트가 하나 올라가는 방법을 쓰는 것을 확인하고 코딩 시작!
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] list = {"aya", "ye", "woo", "ma"};
String[] list2 = {"ayaaya", "yeye", "woowoo", "mama"};
for(int i = 0 ; i < babbling.length ; i++){
for(int j = 0 ; j < list2.length; j++){
babbling[i] = babbling[i].replaceAll(list2[j], "1");
}
for(int j = 0 ; j < list.length; j++){
babbling[i] = babbling[i].replaceAll(list[j], " ");
}
for(int j = 0 ; j < list.length; j++){
babbling[i] = babbling[i].replaceAll(" ", "");
}
if(babbling[i].equals("") ) answer++;
}
return answer;
}
}
도중에 " "을 "" 왜 필요 했나 싶었는데
도중에 코드 실행하면 통과하지만
제출 후 채점하기에서 몇몇개에서 에러가 나서
생각해보고 질문들 확인 해보고 나서 보니
""으로만 치환하면 치환되고 나서 다른 글자들이 붙어서 새로운 조합이 되어서
" " 으로 문자들을 유지시켜주고 다 바꿔주고 나면 ""으로 바꺼주는 식으로 정리하면 되었다.
'[코딩테스트]' 카테고리의 다른 글
| [프로그래머스] 약수의 합 - java (0) | 2024.04.06 |
|---|---|
| [프로그래머스] 옹알이(1) -자바 (0) | 2024.04.06 |
| [프로그래머스] 같은 숫자는 싫어 - 자바 (0) | 2024.04.06 |
| [프로그래머스] 합성수 찾기 - 자바 (1) | 2024.04.05 |
| [프로그래머스] 외계어 사전 - Java (0) | 2024.04.04 |