on my way

[프로그래머스 코딩테스트 연습] 옹알이(2) (Python3) Lv1 본문

algorithm/Python

[프로그래머스 코딩테스트 연습] 옹알이(2) (Python3) Lv1

wingbeat 2024. 8. 29. 21:05
반응형

def solution(babbling):
    words = ["aya","ye","woo","ma"]
    cnt = 0
    for b in babbling:
        for w in words:
            if not w*2 in b:  # 같은 발음이 연속해서 나오는 경우 제외
                b = b.replace(w, ' ')  # 발음을 공백으로 대체
        if b.isspace():  # 발음을 다 지웠을 때 공백만 남으면 유효한 단어
            cnt += 1
    return cnt

 

코드 분석

  1. 발음 배열 정의:
    • words = ["aya", "ye", "woo", "ma"]는 사용할 수 있는 발음들을 정의 
  2. 반복문 시작:
    • for b in babbling:: 주어진 babbling 리스트에서 각 단어를 하나씩 검사 
  3. 발음 제거:
    • for w in words:: 각 단어 b에 대해 "aya", "ye", "woo", "ma"가 포함되어 있는지 확인하고, 포함되어 있다면 해당 발음을 공백으로 대체 
    • if not w*2 in b:: 이 조건은 같은 발음이 연속으로 나오는 경우를 제외한다. 즉, "ayaya" 같은 경우는 규칙에 맞지 않기 때문에 이를 처리 
  4. 유효성 검사:
    • if b.isspace():: 모든 발음이 제거되고 나서 남은 것이 공백(' ')만 있는지 확인한다. 만약 그렇다면, 이 단어는 유효한 단어로 간주되고 cnt 값을 증가
  5. 결과 반환:
    • 최종적으로 cnt는 주어진 리스트에서 규칙에 맞는 단어의 개수를 반환 

 

같은발음이 연속해서 나오는 것을 w*2로 대체하는 부분에서 헤맸다.

반응형