728x90
반응형
(Python) 옹알이(2) (프로그래머스 Lv.1)
https://school.programmers.co.kr/learn/courses/30/lessons/133499
내 코드
def check(bab):
n = 0
cnt = 0
while(n<len(bab)):
if cnt != 1 and n+2<len(bab) and bab[n] == 'a':
if bab[n+1] == 'y' and bab[n+2] == 'a':
n += 3
cnt = 1
else:
return False
elif cnt != 2 and n+1<len(bab) and bab[n] == 'y':
if bab[n+1] == 'e':
n +=2
cnt = 2
else:
return False
elif cnt != 3 and n+2<len(bab) and bab[n] == 'w':
if bab[n+1] == 'o'and bab[n+2] == 'o':
n+=3
cnt = 3
else:
return False
elif cnt != 4 and n+1<len(bab) and bab[n] == 'm':
if bab[n+1] == 'a':
n+=2
cnt = 4
else:
return False
else:
return False
return True
def solution(babbling):
answer = 0
for bab in babbling:
if check(bab) == True:
answer +=1
return answer
옹알이가 특정 단어로만 이루어질 수 있는지 알아보기 위해서 check라는 함수를 따로 준비했다.
물론 정답이 나오기는 했는데 너무 길어지고 보기에도 안좋고 해서 베스트 코드를 리뷰해보기로 했다.
def solution(babbling):
answer = 0
for i in babbling:
for j in ['aya','ye','woo','ma']:
if j*2 not in i:
i=i.replace(j,' ')
if len(i.strip())==0:
answer +=1
return answer
아하 replace를 쓰면 간단한 문제였다. 그리고 두번 연속으로 안되는 걸 if j*2 not in i로 조건 걸어버린 것이 정말 간단한 방법이구나 기억했다!
728x90
반응형
'Python공부 > 프로그래머스' 카테고리의 다른 글
(Python) 크레인 인형 뽑기 게임 (프로그래머스 Lv.1) (0) | 2023.06.19 |
---|---|
(Python) 문자열 나누기 (프로그래머스 Lv.1) (0) | 2023.06.19 |
(Python) 로또의 최고 순위와 최저 순위 (프로그래머스 Lv.1) (0) | 2023.06.19 |
(Python) 둘만의 암호 (프로그래머스 Lv.1) (0) | 2023.06.19 |
(Python) *기사단원의 무기 (프로그래머스 Lv.1)/제곱근까지만 범위설정 (0) | 2023.06.19 |