코딩 테스트
프로그래머스) 옹알이(2) Lv1
우루쾅
2024. 2. 14. 22:58
728x90
반응형
SMALL
조카는 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다.
조카가 발음할 수 있는 단어의 개수를 return 하시오....
먼저 연속해서 발음하는 ayaaya|yeye|woowoo|mama 를 모두 replaceAll 로 제외시켰다
그 다음 2중 for 문을 사용하고 그 안에 while 문을 사용하여
문자가 맞을 경우 "" 로 변경하고 answer++ 을 했는데 시간초과가 되어버린다!
class Solution {
public int solution(String[] babbling) {
String tell[] = {"aya", "ye", "woo", "ma"};
int answer = 0;
for(int i=0; i<babbling.length; i++){
babbling[i] = babbling[i].replaceAll("ayaaya|yeye|woowoo|mama", "");
}
for(int i=0; i<babbling.length; i++){
for(String t : tell){
// 문자가 맞을 경우 "" 변경
while(babbling[i].indexOf(t) < 0){
babbling[i].replaceFirst(t, "");
answer++;
}
}
}
return answer;
}
}
System.out.println 을 마구잡이로 찍어서 확인해보니 세상에
내가 문제를 잘못 읽었다....
"aya", "ye", "woo", "ma" 발음을 조합을 한 단어만 읽을 수 있다는 것!
다시 잘 비벼서 문제를 잘 해결했다 ㅎㅎ
정답
class Solution {
public int solution(String[] babbling) {
int answer = 0;
for(int i=0; i<babbling.length; i++){
babbling[i] = babbling[i].replaceAll("ayaaya|yeye|woowoo|mama", " ");
babbling[i] = babbling[i].replaceAll("aya|ye|woo|ma", "");
if(babbling[i].equals("")) answer++;
}
return answer;
}
}
출처
프로그래머스 - https://school.programmers.co.kr/learn/courses/30/lessons/133499#qna
728x90
반응형
LIST