[프로그래머스] 120956 옹알이(1) / 문제분석 / Java, Python3 정답

쉬운 문제라도 문제를 푸는 방법은 다양합니다.

더 명확하고 깔끔한 문제 해결 방법을 아신다면 자유롭게 말씀해주세요.

프로그래머스 120956 옹알이(1)

프로그래머스 저작권을 침해하지 않기 위해

문제 보시고 싶으시면 버튼을 눌러주세요.

답변 형식
프로그래머스 120956 자바
프로그래머스 120956 파이썬 답변

babbling 배열을 받아 가능한 옹알이 수를 찾으면 됩니다.

풀이 조건

배열 원소 인덱스마다
– “aya”, “ye”, “woo”, “ma” 이외의 문자가 없고,

– “aya”, “ye”, “woo”, “ma” 각각 1번 이하로 사용되는지

확인하면 됩니다.

 

숫자와 다르게 문자열은 대소문자 구분이 필요하지만, 

lv.0 문제이므로 “모든 배열은 소문자로만 구성되어 있다.”라는 조건입니다.

테스트 케이스

“yayae”의 경우 결과 값이 1이 나와야 합니다.

class Solution {
    public int solution(String[] babbling) {
         int answer = 0;              

        for(int i=0; i<babbling.length; i++) {

            String now = babbling[i];
           
            now = now.replaceFirst(“aya”, “0”);
            now = now.replaceFirst(“ye”, “0”);
            now = now.replaceFirst(“woo”, “0”);
            now = now.replaceFirst(“ma”, “0”);

            now = now.replaceAll(“0”, “”);                          
           
            if(now.length()==0) answer++;  
        }

        return answer;
    }
}
class Solution {
    public int solution(String[] babbling) {
         int answer = 0;              

        for(int i=0; i<babbling.length; i++) {

            String now = babbling[i];
            /// 주어진 배열 babbling의 인덱스 하나씩 꺼내 now로 정의
           
            now = now.replaceFirst(“aya”, “0”);
            now = now.replaceFirst(“ye”, “0”);
            now = now.replaceFirst(“woo”, “0”);
            now = now.replaceFirst(“ma”, “0”);                    
            /// 머쓱이의 조카는 단어를 한 번씩만 발음할 수 있으니 replaceFirst,
            /// 사용 가능한 발음을 없애는 과정에서 새로운 사용 가능한 발음이 나오는 것을 막기 위해 발음을 없앤 곳에 0 표시
            /// Ex) yayae

            now = now.replaceAll(“0”, “”);                          
           
            if(now.length()==0) answer++;                        
            /// babbling[i]의 모든 문자가 발음 가능했으면 now의 길이는 0
        }

        return answer;
    }
}
def solution(babbling):
    answer = 0

    for i in babbling :
        i = i.replace(“aya”, “0”, 1)
        i = i.replace(“ye”, “0”, 1)
        i = i.replace(“woo”, “0”, 1)
        i = i.replace(“ma”, “0”, 1)

        i = i.replace(“0”,“”)

        if i == “” :
            answer = answer+1

    return answer
def solution(babbling):
    answer = 0

    for i in babbling :
        # babbling의 크기만큼 for문을 반복하고,  배열 순서대로 babbling 원소를 i에 정의한다.

        i = i.replace(“aya”, “0”, 1)
        i = i.replace(“ye”, “0”, 1)
        i = i.replace(“woo”, “0”, 1)
        i = i.replace(“ma”, “0”, 1)
        # 머쓱이의 조카는 단어를 한 번씩만 발음할 수 있으니 replace(바뀌어야 하는 단어, 바꾼 후 단어, 바꿀 횟수 = 1)을 활용,
        # 사용 가능한 발음을 없애는 과정에서 새로운 사용 가능한 발음이 나오는 것을 막기 위해 발음을 없앤 곳에 0 표시
        # Ex) yayae

        i = i.replace(“0”,“”)
        # i의 모든 0을 삭제한다.

        if i == “” :
            answer = answer+1
        # i 의 모든 문자가 발음 가능했으면 now의 길이는 0
       
    return answer

댓글 달기

이메일 주소는 공개되지 않습니다.