728x90
문제 설명
더보기
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
입출력 예
babbling result["aya", "yee", "u", "maa", "wyeoo"] | 1 |
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"] | 3 |
입출력 예 설명
입출력 예 #1
더보기
["aya", "yee", "u", "maa", "wyeoo"]에서 발음할 수 있는 것은 "aya"뿐입니다. 따라서 1을 return합니다.
입출력 예 #2
더보기
["ayaye", "uuuma", "ye", "yemawoo", "ayaa"]에서 발음할 수 있는 것은 "aya" + "ye" = "ayaye", "ye", "ye" + "ma" + "woo" = "yemawoo"로 3개입니다. 따라서 3을 return합니다.
풀이
def solution(babbling):
count = 0
babble = [ "aya", "ye", "woo", "ma" ]
for utter in babbling:
for text in babble:
if text * 2 not in utter:
utter = utter.replace(text, ' ')
if utter.strip() == '':
count += 1
return count
def solution(babbling):
c = 0
for b in babbling:
for w in [ "aya", "ye", "woo", "ma" ]:
if w * 2 not in b:
b = b.replace(w, ' ')
if len(b.strip()) == 0:
c += 1
return c
풀이 설명
- 조카가 가능한 네 가지 발음이 담긴 배열 만들기 babble
- 함수의 입력값으로 들어온 babbling 배열을 for문을 돌리고 조카가 가능한 네 가지 발음이 담긴 babble배열과 비교
- 이 때 연속된 발음이 들어있지 않다면, 조카가 가능한 발음과 일치하는 부분을 모두 공백
- 전 단계 과정을 거친 단어가 공백을 제외하고 아무것도 없다면, 조카가 발음할 수 있는 단어이기에 count를 추가
관련 함수
1. replace()
- 문자열을 변경하는 함수로서, 문자열 안에 특정 단어를 원하는 글자로 변경 가능하다.
- replace(바꿀 단어, 원하는 단어, [count])
- count : 변경할 횟수로서, 입력하지 않으면 모든 단어를 다 변경하게 된다.
- default는 전체를 의미하는 count = -1로 지정되어 있다.
- 즉, 문제에 적용하자면 들어온 리스트 'babbling'에 있는 단어들 중 w에 있는 단어가 있다면 이를 모두 ' ' 로 1회에 한하여 변경한다.
- 만약, 똑같은 단어가 2개가 연결되어 있다 하더라도, 뒤에 단어는 변경되지 않는다. 예로, "ayaaya"가 있다면 ' aya'로 변경될 것이다.
- 이는 문제에서 제시한 조건인 'babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장'을 지키고자 함이다.
2. strip()
- strip([chars]) : 인자로 전달된 문자를 String의 왼쪽과 오른쪽에서 제거합니다.
- lstrip([chars]) : 인자로 전달된 문자를 String의 왼쪽에서 제거합니다.
- rstrip([chars]) : 인자로 전달된 문자를 String의 오른쪽에서 제거합니다.
- 즉, 문제 해결을 위해 단어에서 띄어쓰기를 모두 지우고, 글자들의 길이(len)이 0이면 answer에 1을 더하면 된다.
LV.0에서 제일 고난이도 문제..
728x90
'CodingTest > [프로그래머스 LV.0]' 카테고리의 다른 글
프로그래머스 LV.0 - 피자 나눠 먹기 (3)[Python] (0) | 2023.01.20 |
---|---|
프로그래머스 LV.0 - 잘라서 배열로 저장하기[Ptrhon] (0) | 2023.01.10 |
프로그래머스 LV.0 - 종이자르기[Python] (0) | 2023.01.09 |
프로그래머스 LV.0 - 연속된 수의 합[Python] (0) | 2023.01.04 |
프로그래머스 LV.0 - 다음에 올 숫자[python] (0) | 2022.12.26 |