[프로그래머스] 옹알이 (1) - Java

Yunki Kim·2023년 1월 11일
0

프로그래머스

목록 보기
91/101
post-thumbnail

문제


링크


코드

class Solution {
    public int solution(String[] babbling) {
        String[] says = {"aya", "ye", "woo", "ma"};
        int count = 0;
        StringBuilder blank = new StringBuilder();
        for (String word : babbling) {
            for (String say : says) {
                if (word.contains(say)) {
                    word = word.replace(say, " ");
                    blank.append(" ");
                }

                if (word.equals(blank.toString())) {
                    count++;
                    break;
                }
            }
            blank.setLength(0);
        }
        return count;
    }
}

리뷰

구현하다보니 생각보다 복잡하게 구현한 듯한 기분이 없잖아있는 듯 하다.

발음 가능한 단어의 배열을 만들어 발음하려는 단어에 해당 단어가 있는 경우
replace를 통해 공백으로 바꾸어 주었다.

이 때 "" 이 아닌 " "을 한 이유는 "wyeoo"의 경우 "ye"를 제거할 때 ""으로 만들어버리면 "woo"로 단어가 이어져서 say배열의 단어와 매칭되어 발음 불가능한 단어가 발음이 가능하다고 체크가 된다.

그래서 띄어쓰기가 있는 공백으로 바꾸어주었고 StringBuilder를 통해 공백으로 바뀔 때마다 공백의 길이를 늘려주었고 한 단어가 전부 공백이 된 경우
발음에 성공한 것이므로 카운트 해주었다.

이 부분은 사실 replace를 통해 임의의 숫자나 문자로 바꾸고 say배열을 다 돌았을 때 해당 문자로만 단어가 구성된 경우 카운트하는 방식으로하면 코드가 더 간결하게 구성될 것 같다.

0개의 댓글