https://school.programmers.co.kr/learn/courses/30/lessons/133499
def solution(babbling):
possible = ["aya", "ye", "woo", "ma"]
answer = 0
for word in babbling:
flag = False
before = ""
while 1:
if len(word)<=1:
break
elif word[:2] in possible:
if word[:2]==before:
flag=True
break
before=word[:2]
word = word[2:]
elif word[:3] in possible:
if word[:3]==before:
flag = True
break
before=word[:3]
word = word[3:]
else:
break
print(word, flag)
if len(word)==0 and flag==False:
answer+=1
return answer
모든 예외처리를 해준,,,, 드러운 코드,,,,,
아니 레벨 1 문제가 이렇게 안풀릴리가 없는데 하면서 모든 상황을 다 if문으로 처리해준 셈이다.
에휴....
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로 단어들을 제거해주는 것이다.
그리고 replace할 때 공백으로 치환해주어 치환 후 연속이 아니던 단어를 연속이 되지 않도록 해준다. 그 후 strip으로 공백을 없애고 길이가 0인지 확인한다.
replace와 strip을 잘 쓸 수 있어야한다.
level 1문제는 대체로 함수를 적재적소에 잘 쓰면 되는 것 같다.
나는 그렇지 못했고 ~~
str.replace("x","")
와 같이 코드를 작성하면 이는 x라는 문자를 모두 ''로 치환하는 것을 의미한다. 만약 치환할 x의 갯수를 지정해주고싶다면 str.replace("x","",2)
과 같이 코드를 작성하면 문자열의 앞 2개의 x만 ''으로 치환하게된다.str.strip()
은 선행, 후행 공백을 제거하는 함수다. 여기서 인자로 특정 문자를 넘겨주면 해당 문자를 선행 후행에서 제거한다. 그리고 lstrip, rstrip을 이용해 선행만, 후행만 제거할 수 있다.