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

김지원·2022년 12월 1일
0

🔨 첫 번째 시도 - permutations 사용

from itertools import permutations
def solution(babbling):
    answer = 0
    can_speak=["ye", "ma","aya", "woo"]
    
    can=[]
    for i in range(1, len(can_speak)+1):
        permu=["".join(x) for x in list(permutations(can_speak,i))]
        can.extend(permu)
        
    can=set(can)
     for bab in babbling:
        if bab in can:
            answer+=1

    return answer

문제: 예를 들어 yemaaya 같은 건 가능하다고 판단할 수 있지만, 두 번, 세 번 이상 반복되는 경우, 예를 들어 yemayeaya 같은 건 permutations으로 구할 수가 없다.
따라서 두 번째 방법으로, 한 문자, 한 문자씩 확인해보았다.

💡 두 번째 시도 - 슬라이싱 비교 : 성공!

def solution(babbling):
    answer = 0
    can_speak=["ye", "ma","aya", "woo"]

    for bab in babbling:
        just_said=""
        s=0
        check=True
        while s<len(bab):
            two,three=bab[s:s+2], bab[s:s+3]
            if two in can_speak and two!=just_said:
                just_said=two
                s+=2
            elif three in can_speak and three!=just_said:
                just_said=three
                s+=3
            else:
                check=False
                break
        if check:
            answer+=1

    return answer

https://school.programmers.co.kr/learn/courses/30/lessons/133499#

profile
Make your lives Extraordinary!

0개의 댓글