프로그래머스 코딩테스트/Python

[프로그래머스] 옹알이 (2) Python

Coding-Su 2024. 7. 2. 16:44
728x90

문제

[프로그래머스] 옹알이 (2)

정답

def solution(babbling):
    answer = 0
    canword = ["aya", "ye", "woo", "ma"]
    word = ["ayaaya", "yeye", "woowoo", "mama"]
    for i in range(0, len(babbling)):
        for j in range(0, len(canword)):
            if word[j] not in babbling[i]:
                if canword[j] in babbling[i]:
                    babbling[i] = babbling[i].replace(canword[j], "0")
                        
    for i in range(0, len(babbling)):
        babbling[i] = babbling[i].replace("0", "")
        if len(babbling[i]) == 0:
            answer += 1

    return answer

아이가 이야기 할수 없는 단어(연속된 단어)를 배열에 넣고 연속된 단어가 포함되지 않은 단어만 for문 을 사용하여 더했습니다.

이때 아이가 가능한 단어(word)를 for문을 통해 replace로 0을 만들어주었는데 바로 없애지 않고 0으로 만든 이유는 문자가 지워지면서 멀리 있는 문자 두개가 만나 아이가 말할 수 있는 단어로 바뀔 수도 있기 때문입니다.

ex) 주어진 단어: 'wayaoo' 인 경우 'aya'가 아이가 말할 수 있는 단어 임으로 지우게 되면 'woo'가 남고 다음 'woo'를 지우는 단계가 왔을때 'woo'는 아이가 말할 수 있는 단어라고 생각하여 지워지기 때문입니다.

따라서 마지막 단계에서 0을 모두 지워주고 길이가 0인 단어의 수를 더해서 답을 구했습니다.

728x90