W 개발 일지

프로그래머스 - 옹알이 본문

JAVA/프로그래머스

프로그래머스 - 옹알이

waVwe 2023. 3. 23. 15:29
반응형

문제 설명

머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo","ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어붙인) 발음 밖에 하지 못 합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

 

입출력 예

babbling = ["aya", "yee", "u", "maa", "wyeoo"]

result = 1

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
class Solution {
    public int solution(String[] babbling) {
        int answer = 0;
 
        for(int i = 0; i < babbling.length; i++) {
            babbling[i] = babbling[i].replaceFirst("aya""0");
            babbling[i] = babbling[i].replaceFirst("woo""0");
            babbling[i] = babbling[i].replaceFirst("ye""0");
            babbling[i] = babbling[i].replaceFirst("ma""0");
            babbling[i] = babbling[i].replace("0""");
            
            if(babbling[i].equals("")) answer++;
        }
        
        return answer;
    }
}
cs

 

코드에 쓰인 메소드 replaceFirst( A, B ) : 문자열의 처음 발견된 A를 B로 치환한다.

 

코드 설명 : 각 문자열 안에서 조카가 발음할 수 있는 단어들의 조합도 (ex: ayama = aya + ma로 1개로 셈) 갯수 1로 치기 때문에

replaceFirst로 조카가 발음할 수 있는 단어들을 0으로 치환 후 마지막에 0을 "" 공백으로 치환함으로써 조합의 경우 또한 확인할 수 있음.

예시 : ayamaa는 replaceFirst("aya", "0") 와 replaceFirst("ma", "0")로 둘 다 "00"이 된다.

이는 나중에 공백으로 변경되어 answer++로 갯수가 세어진다.

유의사항에도 나와있듯이 "woowo"는 replaceFirst("woo", "0")로 0이 되지만 뒤에 wo는 0으로 치환되지 않기에 answer가 되지 못 ㄹ한다.

 

출처 : 프로그래머스

https://programmers.co.kr/

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

 

 

반응형