nueijeel
[프로그래머스][python] Lv.0 - 옹알이 본문
문제 설명
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
해결 단계
1. 조카가 할 수 있는 발음 문자열을 배열 word로 선언한다.
2. 문자열 배열 babbling의 각 문자열에서 word의 각 문자열이 포함되어 있는지 for문 내에서 replace()함수를 이용해서 찾고, 있으면 다른 문자로 변경한다.
3. for문이 종료된 후 babbling 배열의 문자열에서 바뀐 문자로만 이루어진 문자열이 있다면 발음 가능한 단어 갯수로 count한다.
작성한 코드
def solution(babbling):
count = 0
word=["aya","ye","woo","ma"]
for i in range(len(babbling)):
for j in range(len(word)):
babbling[i] = babbling[i].replace(word[j],"*")
for i in range(len(babbling)):
if babbling[i]=="*" or babbling[i]=="**" or babbling[i]=="***" or babbling[i]=="****":
count+=1
return count
babbling 배열에 word 배열 문자열이 포함되어 있는지 비교할 방법을 생각하는데 오래걸렸다.
파이썬 코테 공부를 몇 달 쉬었다가 하려니까 함수도 까먹어서 문자열 함수를 검색해보다가 떠올라 시도해본 방법!
처음에 replace될 문자열을 공백으로 줬다가, "wyeoo"라는 테스트 케이스에서 "ye"가 제외되고 "woo"만 남았을 때 또 "woo"로 제외되어서 발음할 수 있는 단어로 카운트됐다. 그래서 대체 문자열을 "*"로 했는데 마지막 for문 대신 뭔가 더 깔끔하게 카운트할 방법이 없을까 고민 중이다.
728x90
'코딩테스트 > 프로그래머스' 카테고리의 다른 글
[프로그래머스][python] Lv.0 - 캐릭터의 좌표 (0) | 2023.02.14 |
---|---|
[프로그래머스][python] Lv.0 - 외계행성의 나이 (0) | 2023.02.14 |
[프로그래머스][python] Lv.0 - 최빈값 구하기 (0) | 2023.02.09 |
[프로그래머스][python] Lv.0 - 평행 (0) | 2023.02.08 |
[프로그래머스][python] Lv.0 - 분수의 덧셈 (0) | 2023.02.08 |