프로그래머스_LV.0_옹알이(1)

Dreamer ·2022년 12월 1일
0

코딩테스트 준비

목록 보기
1/93

1. 문제

  • 머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.

2. 해결 방안

def solution(babbling):
    answer = 0
    for word in babbling:
        for w in [ "aya", "ye", "woo", "ma" ]:
                 word = word.replace(w, ' ', 1) 
        if len(word.strip()) == 0:
            answer += 1
    return answer

3. 관련 함수

3-1. replace()

  • 문자열을 변경하는 함수로서, 문자열 안에 특정 단어를 원하는 글자로 변경 가능하다.

  • replace(바꿀 단어, 원하는 단어, [count])

  • count : 변경할 횟수로서, 입력하지 않으면 모든 단어를 다 변경하게 된다.

  • default는 전체를 의미하는 count = -1로 지정되어 있다.

  • 즉, 문제에 적용하자면 들어온 리스트 'babbling'에 있는 단어들 중 w에 있는 단어가 있다면 이를 모두 ' ' 로 1회에 한하여 변경한다.

  • 만약, 똑같은 단어가 2개가 연결되어 있다 하더라도, 뒤에 단어는 변경되지 않는다. 예로, "ayaaya"가 있다면 ' aya'로 변경될 것이다.

  • 이는 문제에서 제시한 조건인 'babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장'을 지키고자 함이다.

3-2. strip()

  • strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다.
  • lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다.
  • rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다.
  • 즉, 문제 해결을 위해 단어에서 띄어쓰기를 모두 지우고, 글자들의 길이(len)이 0이면 answer에 1을 더하면 된다.
profile
To be a changer who can overturn world

0개의 댓글