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

융쬬·2024년 5월 9일

Algorithm

목록 보기
17/24

문제 바로가기

https://school.programmers.co.kr/tryouts/85897/challenges?language=python3#

 

💡 문제 요약

머쓱이는 태어난 지 11개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음과 네 가지 발음을 조합해서 만들 수 있는 발음밖에 하지 못하고 연속해서 같은 발음을 하는 것을 어려워합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

ex)

babblingresult
["aya", "yee", "u", "maa"]1
["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"]2
[”yemaye”, “aya”]2

입출력 예 설명

  • 입출력 예 #1
    • ["aya", "yee", "u", "maa"]에서 발음할 수 있는 것은 "aya"뿐입니다. 따라서 1을 return 합니다.
  • 입출력 예 #2
    • ["ayaye", "uuu", "yeye", "yemawoo", "ayaayaa"]에서 발음할 수 있는 것은 "aya" + "ye" = "ayaye", "ye" + "ma" + "woo" = "yemawoo"로 2개 입니다. "yeye"는 같은 발음이 연속되므로 발음할 수 없습니다. 따라서 2를 return합니다.
  • 입출력 예 #3
    • [”yemaye”, “aya”]에서 발음 할 수 있는 것은 “ye” + “ma” + “ye” = “yemaye”, “aya”로 2개 입니다.

 

💡 알고리즘 설계

  • 옹알이(1) 문제연속해서 같은 발음을 하는 것을 어려워합니다. 라는 조건이 추가된 문제
  • 따라서 옹알이(1)의 풀이에 머쓱이가 발음할 수 있는 단어들이 포함되어 있는지 보는 if 문에서 연속된 단어인지도 체킹해주는 작업만 추가해줬다.

💡 내 코드

def solution(babbling):
    answer = 0
    words = ["aya", "ye", "woo", "ma"]
    
    for bab in babbling:
        for word in words:
            if (word in bab) and not ((word+word) in bab):
                bab = bab.replace(word, " ")
        bab = bab.replace(" ", "")
        
        if not bab:
            answer+=1
    
    return answer

 

profile
영어공부 하는 Computer Scientist

0개의 댓글