Algorithm/String

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

킹우현 2023. 7. 18. 19:06

 

def solution(babbling):
    answer = 0
    
    available = ('aya','ye','woo','ma')
    available_prefix = ('a','y','w','m')
    
    def checkFunc(arr):
        arr_length = len(arr)
        i = 0
    
        while(i <= arr_length-1):
            value = arr[i]
            
            if value not in available_prefix:
                return False
            
            if value == 'a':
                if arr[i:i+3] != 'aya':
                    return False
                else:
                    i += 3
            
            if value == 'y':
                if arr[i:i+2] != 'ye':
                    return False
                else:
                    i += 2
                    
            if value == 'w':
                if arr[i:i+3] != 'woo':
                    return False
                else:
                    i += 3
                
            if value == 'm':
                if arr[i:i+2] != 'ma':
                    return False
                else:
                    i += 2
                
        return True
    
    for i in babbling:
        if checkFunc(i):
            answer += 1
            
    return answer

이번 문제는 "aya", "ye", "woo", "ma" 총 4가지 문자열의 조합으로만 이루어진 문자열을 식별하는 문제이다.

 

이를 해결하기 위해 첫번째로 문자열의 시작이 a, y, w, m로 시작하지 않는 문자열이라면 바로 False를 반환하였고 각각의 문자열이 발음할 수 있는 문자열인지 한 번 더 확인해주었다.

 

문자열을 다루는 문제를 연습할 수 있었던 문제였다 :)

'Algorithm > String' 카테고리의 다른 글

[프로그래머스] 숨어있는 숫자의 덧셈(2)  (0) 2023.07.20
[프로그래머스] OX퀴즈  (0) 2023.07.20
[프로그래머스] 문자열 계산하기  (0) 2023.07.20
[HackerRank] Caesar Cipher  (0) 2023.05.19
[HackerRank] Two Characters  (0) 2023.05.19