옹알이(1)

이리·2024년 12월 21일
0
post-thumbnail

문제: https://school.programmers.co.kr/learn/courses/30/lessons/120956

문제설명

  • 주어진 파라미터: String[] babbling
  • 반환값: int → 발음 할 수 있는 단어 개수
  • "aya", "ye", "woo", "ma”를 조합한 단어만 발음 할 수 있다.

풀이방식

  1. 발음할 수 있는 단어들을 기준으로 기존 babbling을 하나씩 돌면서 모두 replace 처리한다.

  2. replace 처리 후 남은 단어가 없을 경우 count++ 한다.

    ! 문제 발생

    → wyeoo의 경우 ‘ye’가 Replace 처리되면 woo가 남아 또 Replace 처리돼 발음을 할수 없는 단어임에도 발음 할 수 있는 단어로 체크가 된다.

    → replace를 “” 가 아닌 “.”등 별도의 문제로 처리해 이와 같은 경우를 방지한다.

    ex) wyeoo → w.oo → replace 불가

코드

class Solution {
    public int solution(String[] babbling) {
        
        int len = babbling.length;
        String[] word = new String[]{"aya", "ye", "woo", "ma"};
        int count = 0;
        
        // 돌면서 모두 replace 처리 
        for(int i = 0; i < word.length; i++){    
            for(int j = 0; j < len; j++){
                babbling[j] = babbling[j].replace(word[i],".");
            }
        }
        
        for(String str : babbling){
            
            if(str.replace(".","").equals("")){
                count++;
            }
        }
        
        return count;
    }
}

회고

반례를 보니 예상치 못한 순간에도 오류가 있을 수 있다는 생각에 조금 더 꼼꼼하게 풀이 방식을 짜야겠다는 반성을 했다!


참~재밌쥬잉~?

0개의 댓글