https://school.programmers.co.kr/learn/courses/30/lessons/120956
처음에 짠 못생긴 코드를 테스트용으로 채점했는데 통과되어서 조금 더 수정해서 다시 채점했다.
우선 필요한 문자들을 String 배열 words에 등록해주었다.
그 후 babbling에 있는 문자열들을 하나하나 다 비교해봐야하기 때문에 babbling에 길이만큼 반복문을 작성해준다.
그리고 words에 있는 문자열들이 babbling에 있는 문자열들에 들어 있다면 replace를 이용해 1로 변경해준다(빈칸과 영어가 아니라면 어떤것으로 해도 상관없다)
왜 빈칸으로 하면 안되냐면 "wyeoo" 같은 경우 때문에 그렇다.
"wyeoo"에는 "ye" 가 들어가 있어서 빈칸으로 치환되면 "woo" 가 만들어지는데 해당부분도 words에 포함되어 있는 값이기 때문에 해당 값도 빈칸으로 치환되어 값이 맞지 않게 된다. (words에서 연속된 값들이어야해서 yewoo라면 만들어질수 있는 단어지만 wyeoo같은경우는 해당되지 않는다.)
변경된 값을 babbling[i]에 그대로 넣어 바뀐 값이 적용되게 한다.
그러면 위와같이 값들이 babbling에 저장이 되게 된다.
해당값에서 또 1을 replace로 빈칸으로 처리한 후 만약 babbling[i]에 빈칸이 저장되어 있다면 answer에 증감연산자를 이용해 1씩 증가시키면 원하는 값이 출력되게 된다.
class Solution {
public int solution(String[] babbling) {
int answer = 0;
String[] words = {"aya", "ye", "woo", "ma"};
System.out.println(Arrays.toString(words));
for(int i=0; i<babbling.length;i++){
for(int j=0; j<words.length;j++){
if(babbling[i].contains(words[j])){
babbling[i] = babbling[i].replace(words[j],"1");
}
}
babbling[i] = babbling[i].replace("1","");
if(babbling[i].isEmpty()){
answer ++;
}
}
return answer;
}
}
'프로그래머스 문제풀어보기' 카테고리의 다른 글
[Lv.0] 분수의 덧셈 (0) | 2023.04.05 |
---|---|
[Lv.0] 팩토리얼 (0) | 2023.04.05 |
[Lv.0] 다음에 올 숫자 (0) | 2023.04.04 |
[Lv.0] 문자열 계산하기 (0) | 2023.04.01 |
[Lv.0] 숨어있는 숫자의 덧셈 (2) (0) | 2023.03.23 |
댓글