[프로그래머스] 옹알이(1) 파이썬
https://school.programmers.co.kr/learn/courses/30/lessons/120956
프로그래머스
SW개발자를 위한 평가, 교육, 채용까지 Total Solution을 제공하는 개발자 성장을 위한 베이스캠프
programmers.co.kr
문제에서 옹알이 가능한 발음은 ['aya', 'ye', 'woo', 'ma'] 로 주어지고 네 가지 발을을 최대 한 번씩 사용해 조합한 발음밖에 하지 못한다고 합니다.
즉, 이말을 다른말로 해석하면 주어진 4가지 단어는 중복이 없이 1번씩만 사용이 가능하다는 의미입니다.
이제 주어진 입출력 예시와 제한 사항을 토대로 문제를 해결해 보겠습니다.
문제 자체는 간단합니다.
babbling 리스트에 옹알이가 담겨 넘어옵니다.
그렇다면 해당 옹알이를 입력 받아서 그 옹알이가 발음이 가능한 발음이 있는지 살펴보고 발음이 가능하다면 발음 했다는 의미로 대체 텍스트로 대체 합니다.
가장 간단한 대체텍스트는 공백이고, 문자를 숫자나 특수기호로 대체해도 되지만 입출력 예시에 babbling에 어떤 문자가 담겨올지 알 수 없으므로 공백으로 대체하였습니다.
이제 코드를 작성해 보겠습니다.
# 입력
def solution(babbling):
answer = 0 # 정답의 수
pronunciation = ['aya','ye','woo','ma'] # 가능한 발음
# 옹알이를 하나씩 확인
for bab in babbling:
for pronunce in pronunciation: # 가능한 발음 중 해당 발음이 있는 경우 공백으로 대체
if pronunce in bab:
bab = bab.replace(pronunce, ' ')
# 만약 옹알이가 전부 공백인 경우 해당 옹알이는 발음이 가능하다는 의미
if bab.isspace():
answer += 1
return answer
프로그래머스는 def를 통해 입력을 받습니다.
babbling 에 옹알이가 담겨오고 가능한 발음을 pronunciation 으로 정의해 주었습니다.
이제 옹알이 리스트에서 발음을 하나씩 가져와 해당 옹알이가 발음이 가능한지 살펴볼 것입니다.
for 문을 이용해 옹알이를 가져오고 마찬가지로 for 문을 이용해 가능한 발음을 가져옵니다.
첫 발음부터 가능하다면 해당 발음은 말했다는 의미로 공백으로 대체해 넘어갑니다.
여기서 wyeoo 의 경우를 살펴 보겠습니다.
발음 가능한 리스트에는 ye 와 woo 가 존재합니다.
만약 발음을 공백으로 대체할 때 띄워쓰기 없이 붙여서 공백으로 대체한다면 해당 발음은 발음이 가능하다 판단될 것 입니다.
왜냐하면 ye 를 발음 후 남은 옹알이는 woo가 되버리기 때문입니다.
그러나 공백을 한칸 삽입하며 문자를 대체한다면 발음은 w oo 가 되어 발음이 불가능해 집니다.
해당 옹알이를 가능한 발음으로 모두 검사한 후 해당 옹알이가 공백으로 대체되었다면 발음 가능한 옹알이로 판단되어 정답에 +1 되는 구조입니다.