def solution(babbling):
answer = 0
prefix_list = ['a','y','w','m']
global current
current = ''
def check(string):
global current
list_str = list(string)
index = 0
while(index <= len(list_str)-1):
char = list_str[index]
if current == char or char not in prefix_list:
current = ''
return False
if char == 'a':
temp_string = ''.join(list_str[index:index+3])
if temp_string != 'aya':
current = ''
return False
else:
index += 3
elif char == 'y':
temp_string = ''.join(list_str[index:index+2])
if temp_string != 'ye':
current = ''
return False
else:
index += 2
elif char == 'w':
temp_string = ''.join(list_str[index:index+3])
if temp_string != 'woo':
current = ''
return False
else:
index += 3
elif char == 'm':
temp_string = ''.join(list_str[index:index+2])
if temp_string != 'ma':
current = ''
return False
else:
index += 2
current = char
current = ''
return True
for i in babbling:
if check(i):
answer += 1
return answer
이번 문제는 이전에 풀었던 옹알이(1) 문제의 심화버전으로, 연속으로 같은 발음을 할 수 없다는 조건이 더해진 문제이다.
이전의 풀이와 동일하게 문자열을 확인하는 함수(check)를 선언하고, while문으로 연속적으로 발음을 하거나 할 수 없는 발음을 하였을 때 False를 반환하도록 하였다.
다른 사람들의 풀이를 보니 할 수 있는 발음을 다른 문자열로 대체해서 풀이하였는데, 다른 사람들의 풀이를 보면서 새롭게 알게 된 문자열 관련 함수들을 정리하고자 한다.
.replace()
replace()는 문자열을 변경하는 함수이다. 문자열 안에서 특정 문자를 새로운 문자로 변경하는 기능을 가지고 있다.
사용 방법은 '변수. replace(old, new, [count])' 형식으로 사용한다.
- old : 현재 문자열에서 변경하고 싶은 문자
- new: 새로 바꿀 문자
- count: 변경할 횟수. 횟수는 입력하지 않으면 old의 문자열 전체를 변경한다. 기본값은 전체를 의미하는 count=-1로 지정되어있다.
.strip(), .lstrip(), rstrip()
strip()을 이용하면 문자열에서 특정 문자를 제거할 수 있다. Python의 String은 다음 함수를 제공한다.
- strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다.
- lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다.
- rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다.
인자를 전달하지 않을 수도 있으며, 인자를 전달하지 않으면 String에서 공백을 제거한다.
인자로 문자 1개를 전달하면 그 문자와 동일한 것을 모두 제거하고, 인자로 여러 문자를 전달하면 그 문자들과 동일한 것들을 모두 제거합니다.
👉🏻 동일하지 않은 문자가 나올 때까지 제거 !
'Algorithm 💡 > String' 카테고리의 다른 글
[프로그래머스] JadenCase 문자열 만들기 (0) | 2024.01.05 |
---|---|
[백준 5052번] 전화번호 목록 (0) | 2023.12.13 |
[프로그래머스] 문자열 나누기 (0) | 2023.07.21 |
[프로그래머스] 문자열 밀기 (0) | 2023.07.21 |
[프로그래머스] 숨어있는 숫자의 덧셈(2) (0) | 2023.07.20 |