https://school.programmers.co.kr/learn/courses/30/lessons/133499#qna
문제 접근
접근한 방법들이 경우의 수가 너무 많거나 잘 떠오르지 않아서 집단 지성의 힘을 빌렸다.
연속 문자는 할 수 없다 했으니 조건문에서 걸러주고
문자열에서 아기가 옹알이 할 수 있는 문자열 일부분을 " "의 공백으로 대체해주면서 인덱스의 길이가 0이 되면 카운팅 해주는 방식이다.
처음엔 풀이를 보고 왜 문자열을 꼭 " "으로 대체하고 마지막에 " "을 ""으로 대체하는지 의문이 들었다.
공백을 넣어서 대체해주지 않으니 실패가 떴었고 찾아보니 반례가 있더라
"woayao"
해당 문자열의 경우 공백을 넣어주지 않으면 aya가 사라지고 난 뒤 woo도 사라져서 카운팅 됐었다.
import java.util.*;
class Solution {
public int solution(String[] babbling) {
int answer = 0;
for (int i = 0; i < babbling.length; i++) {
if (babbling[i].contains("ayaaya") || // 연속 문자 거르기
babbling[i].contains("yeye") ||
babbling[i].contains("woowoo") ||
babbling[i].contains("mama")) continue;
babbling[i] = babbling[i].replace("aya", " ");
babbling[i] = babbling[i].replace("ye", " ");
babbling[i] = babbling[i].replace("woo", " ");
babbling[i] = babbling[i].replace("ma", " ");
babbling[i] = babbling[i].replace(" ", "");
if(babbling[i].length() == 0) answer ++;
}
System.out.println(answer);
return answer;
}
}
'알고리즘 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 / 숫자 짝꿍 / JAVA] (0) | 2023.01.30 |
---|---|
[프로그래머스 / 삼총사 / JAVA] (0) | 2023.01.27 |
[프로그래머스 / 햄버거 만들기 / JAVA] (0) | 2023.01.24 |
[프로그래머스 / 과일 장수 / JAVA] (0) | 2023.01.18 |
[프로그래머스 / 명예의 전당 (1) / JAVA] (0) | 2023.01.13 |
댓글