728x90
문제
정답
def solution(babbling):
answer = 0
canword = ["aya", "ye", "woo", "ma"]
word = ["ayaaya", "yeye", "woowoo", "mama"]
for i in range(0, len(babbling)):
for j in range(0, len(canword)):
if word[j] not in babbling[i]:
if canword[j] in babbling[i]:
babbling[i] = babbling[i].replace(canword[j], "0")
for i in range(0, len(babbling)):
babbling[i] = babbling[i].replace("0", "")
if len(babbling[i]) == 0:
answer += 1
return answer
아이가 이야기 할수 없는 단어(연속된 단어)를 배열에 넣고 연속된 단어가 포함되지 않은 단어만 for문 을 사용하여 더했습니다.
이때 아이가 가능한 단어(word)를 for문을 통해 replace로 0을 만들어주었는데 바로 없애지 않고 0으로 만든 이유는 문자가 지워지면서 멀리 있는 문자 두개가 만나 아이가 말할 수 있는 단어로 바뀔 수도 있기 때문입니다.
ex) 주어진 단어: 'wayaoo' 인 경우 'aya'가 아이가 말할 수 있는 단어 임으로 지우게 되면 'woo'가 남고 다음 'woo'를 지우는 단계가 왔을때 'woo'는 아이가 말할 수 있는 단어라고 생각하여 지워지기 때문입니다.
따라서 마지막 단계에서 0을 모두 지워주고 길이가 0인 단어의 수를 더해서 답을 구했습니다.
728x90
'프로그래머스 코딩테스트 > Python' 카테고리의 다른 글
[프로그래머스] 숫자 짝꿍 Python (0) | 2024.07.05 |
---|---|
[프로그래머스] 체육복 Python (1) | 2024.07.05 |
[프로그래머스]로또의 최고 순위와 최저 순위 Python (0) | 2024.07.02 |
프로그래머스 덧칠하기 Python (0) | 2024.06.30 |
프로그래머스 소수 만들기 Python (0) | 2024.06.30 |