def solution(babbling):
ans = 0
possible = ["aya", "ye", "woo", "ma"]
i = 0
recent = ""
for word in babbling:
while 1:
# 같은 옹알이
if recent == possible[i % len(possible)]:
break
else:
word = word.replace(possible[i % len(possible)], "", 1)
recent = possible[i % len(possible)]
if word in possible:
i += 1
continue
else:
break
# for baby in possible:
# # TODO: 4번보다 더 될 수 있는 경우 검출하기 - 같은 발음이 연속되지만 않으면 됨 ex. ayayewooyema
# word = word.replace(baby, "", 1)
if len(word) == 0:
ans += 1
return ans
접근 자체를 replace로 가다보니 문제가 많았다. 주어진 문장에 없는 옹알이도 그냥 replace 해버리니까 플래그를 세울수가 없었다. 옹알이를 딱 4번만 반복한다면 그냥 for문을 돌리면 되지만, 옹알이가 4번이 넘는 경우 (ex. "ayayewooyema")를 처리할 수가 없었다. 그래서 이것저것 시도해보다가 결국 포기했다.
def solution(babbling):
ans = 0
possible = ["aya", "ye", "woo", "ma"]
for word in babbling:
comp = ""
temp = ""
for char in word:
comp += char
if comp == temp:
break
if comp in possible:
temp = comp
comp = ""
if comp == "":
ans += 1
return ans
위와 같이 다른 분의 풀이를 참조하여 완성하였다. 쉬운 문제일 줄 알았는데 풀지 못해서 아쉽다