프로그래밍/Python

[프로그래머스] 옹알이 / Python

나는 라미 2023. 5. 13. 22:13
728x90
반응형

문제

 

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

 

제한사항

  • 1 ≤ babbling의 길이 ≤ 100
  • 1 ≤ babbling[i]의 길이 ≤ 15
  • babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
  • 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
  • 문자열은 알파벳 소문자로만 이루어져 있습니다.

아이디어

주의할 점이 babbling에서 각각 최대 한번씩만 등장 할 수 있다는 점이다.

제시된 문자열에서 하나씩 지워서 하나도 안남으면 발음할 수 있는 단어로 취급해서 문제를 풀자.

 

풀이

리스트에 발음 가능한 문자열을 넣고 반복문을 돌면서 하나씩 제거한다.

문자열 replace를 이용해 발음 가능한 문자열이 나오면 공백으로 치환해준다.

발음 가능한 모든 문자열을 다 지나고 난 후 공백만 남게 되면 answer + 1

 

쉬운 문제인데 정답률이 낮아서 의문이다.

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

 

728x90
반응형