본문 바로가기
프로그래머스/Lv.1

프로그래머스 > 옹알이(2) - Python, re.sub()

by 아찌방 2024. 10. 27.

 

 

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

 

프로그래머스

SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프

programmers.co.kr

 

 

 

풀이 - 나의 생각

단어에서 패턴을 하나씩 빼는데

 

단어가 다 없어진다 == 할 수 있는 단어다

 

남아 있다 == 할 수 없는 단어다

 

pattern을 한 바퀴 돌았는데 단어 길이가 변한게 없다 == 할 수 없는 단어

 

그리고 패턴을 맨 앞에서부터 있을 경우에만 제거했는데

 

그 이유는

 

"yayae"같은 경우를 막기 위해서이다.

 

"yayae"의 경우 원래 할 수 없는 말이다.

 

하지만 내가 구상한대로라면

 

"aya"를 제거 ->

 

"ye"

 

"ye" 제거 ->

 

할 수 있는 말이 된다

 

그렇기에 단어의 시작부터 패턴이 제거되는 경우만 체크 되게 했다.

 

코드

 

import re
def solution(babbling):
    answer = 0
    pattern = ['aya','ye','woo','ma']
    
    for word in babbling:
        length = len(word)
        pre = ''
        
        while len(word) > 0:
            flag = len(word)
            for pa in pattern:
                if word.find(pa) == 0 and pre != pa:
                    word = re.sub(pa, '', word, 1)
                    pre = pa
            
            if flag == len(word): break             
        
        if len(word) == 0:
            answer+=1
        
            
    return answer

 

 

 

 

 

 

 

다음에 또 봐요

 

728x90