문제 설명
그녀는 6개월 된 조카를 돌보고 있습니다.
내 조카는 “아야”, “예”, “우”, “마” 네 가지 소리의 조합(조인)을 최대 한 번만 발음할 수 있습니다.
문자열 배열 옹알이가 매개변수로 주어지면 solve 함수를 완성하여 조카가 발음할 수 있는 단어의 수를 반환합니다.
제한
- 1 ≤ 옹알이 길이 ≤ 100
- 1 ≤ 옹알이 길이(i) ≤ 15
- 각 옹알이 시퀀스에서 “aya”, “ye”, “woo” 및 “ma”는 각각 최대 한 번씩 나타납니다.
- 즉, 각 문자열의 가능한 모든 하위 문자열 중에서 “aya”, “ye”, “woo” 및 “ma”는 한 번만 나타납니다.
- 즉, 각 문자열의 가능한 모든 하위 문자열 중에서 “aya”, “ye”, “woo” 및 “ma”는 한 번만 나타납니다.
- 문자열은 모두 소문자로 구성됩니다.
I/O 샘플 옹알이 결과
(“아야”, “예이”, “유”, “마”, “위오”) | 하나 |
(“아야예”, “uuuma”, “예”, “예마우”, “아야”) | 삼 |
I/O 예시 설명
I/O 예제 #1
- (“aya”, “yee”, “u”, “maa”, “wyeoo”) “aya”만 발음할 수 있습니다.
그래서 1을 반환합니다.
I/O 예제 #2
- (“ayaye”, “uuuma”, “ye”, “yemawoo”, “ayaa”)는 “aya” + “ye” = “ayaye”, “ye”, “ye” + “ma” + “로 발음될 수 있습니다.
우” = “예마우”, 3개입니다.
따라서 3을 반환합니다.
메모
- 4가지를 더해서 할 수 있는 발음 외에는 어떤 발음도 할 수 없도록 규정하고 있다.
예를 들어 “woowo”는 “woo”는 발음할 수 있지만 “wo”는 발음할 수 없기 때문에 발음할 수 없습니다.
(설명)
옹알이 목록을 만든 후 각 옹알이 단어는 최대 한 번 발생하므로
bab_list() 함수를 만들어 단어에서 중얼거리는 단어를 제거하여 남은 단어가 있는지 확인합니다.
대신 ay woo a와 같은 중간 단어는 삭제할 때 제거되고, 비단어도 걸러질 수 있으니 이 부분에 주의하면서 코드를 작성하는 것이 중요할 것 같습니다.
대신에 bab_list에 특화되어 일반화하기 힘든 코드입니다 하헤헤
요약하다
- bab_list : babble 목록
- find_bab: 특정 단어 내 옹알이 검색
def solution(babbling):
answer = 0
bab_list = ("aya", "ye", "woo", "ma")
def find_bab(bab_list, bab):
for ba in bab_list:
if ba in bab(:len(ba)):
bab = bab(len(ba):)
elif ba in bab(-len(ba):):
bab = bab(:len(bab)-len(ba))
return bab
for bab in babbling:
while(1):
tmp = find_bab(bab_list, bab)
if (bab == tmp):
break
else:
if tmp == '':
answer += 1
break
elif len(tmp) < 2:
break
bab = tmp
return answer