본문 바로가기

알고리즘/프로그래머스

[파이썬] 프로그래머스 코딩테스트 입문 - 옹알이 (1) 완벽해설

문제

 

 

 


해설

 

이 문제의 경우 babbling에서 주어진 리스트 안의 각각의 문장이 조카가 발음을 할 수 있는 단어로 구성이 되어 있는지를 확인해주면 풀 수 있는 문제이다.

 

따라서 babbling에서의 각각의 문장을 while문 안에 넣어주고, 조카가 발음할 수 있는 단어가 들어가있을 경우 이를 다른 한 단어로 대체를 해준 후 대체한 횟수를 세주고, 그리고 마지막에 그 문장의 글자수랑 "대체한 횟수 * 대체 단어의 단어수"의 단어수가 동일한지 파악해준 후, 동일하다면 발음할 수 있는 단어에 해당하므로 answer에 +1을 해주면 된다. 

 

여기서 단어를 대체하고 나서 우연히 문장의 글자수랑 "대체한 횟수*대체 단어의 단어수"가 동일할 경우가 생길 수 있다. 이를 미연에 방지하고자 대체 단어로는 15글자보다 큰 단어를 넣어주어 이 가능성을 완전히 배제해준다. (내 경우 16글자의 단어로 대체해주었다.)

 

 

코드
pron = ["aya", "ye", "woo", "ma"]
def solution(babbling):
    answer = 0
    for word in babbling:
        count = 0
        while (True):
            for pro in pron:
                if (pro in word):
                    word = word.replace(pro,"1111111111111111")
                    count += 1
            if (count != 0) and (len(word) == 16*count):
                answer += 1
                break
            break
    return answer

 

 

결과