Java & Spring/코딩테스트

12일차 - 알고리즘 코드카타(실패)

DJ.Kang 2024. 7. 31. 10:12

- 진행

일자 완료 번호
24.07.16 1~20
24.07.17 21~35
24.07.18 36~42
24.07.19 43~47
24.07.22 48~50
24.07.23 51~55
24.07.24 56~57
24.07.25 58
24.07.26 59~60
24.07.29 61
24.07.30 62

- 회고

62. 옹알이(2) : https://school.programmers.co.kr/learn/courses/30/lessons/133499

 

프로그래머스

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

programmers.co.kr

import java.util.*;
class Solution {
    public int solution(String[] babbling) {
        int ans = 0;
        
        for (int i=0; i<babbling.length; i++){
            babbling[i] = babbling[i].replace("ayaaya", "1");
            babbling[i] = babbling[i].replace("yeye", "1");
            babbling[i] = babbling[i].replace("woowoo", "1");
            babbling[i] = babbling[i].replace("mama", "1");
            
            
            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){
                ans++;
            }
        }
            
        return ans;
    }
}

 

- 풀이과정

  1. 입력배열을 순회한다
  2. 두번 연속된 경우를 배제
  3. 해당 단어가 등장한 경우 replace를 통해 공백으로 대체
  4. 마지막에 공백을 제거하여 만약 발음가능한 단어라면 길이가 0이됨