프로그래밍/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
반응형