[프로그래머스] 옹알이(1) - Python
2025. 4. 10. 23:02ㆍPython
파이썬 공부를 하며, 프로그래머스 문제로 연습을 하던 도중...
아주 흥미로운 녀석을 만나서 포스트를 작성하게 되었다.
문제설명 >
머쓱이는 태어난 지 6개월 된 조카를 돌보고 있습니다. 조카는 아직 "aya", "ye", "woo", "ma" 네 가지 발음을 최대 한 번씩 사용해 조합한(이어 붙인) 발음밖에 하지 못합니다. 문자열 배열 babbling이 매개변수로 주어질 때, 머쓱이의 조카가 발음할 수 있는 단어의 개수를 return하도록 solution 함수를 완성해주세요.
제한사항 >
- 1 ≤ babbling의 길이 ≤ 100
- 1 ≤ babbling[i]의 길이 ≤ 15
- babbling의 각 문자열에서 "aya", "ye", "woo", "ma"는 각각 최대 한 번씩만 등장합니다.
- 즉, 각 문자열의 가능한 모든 부분 문자열 중에서 "aya", "ye", "woo", "ma"가 한 번씩만 등장합니다.
- 문자열은 알파벳 소문자로만 이루어져 있습니다.
나의 풀이 >
def solution(babbling):
joka = ["aya", "ye", "woo", "ma"]
answer = 0
for i in babbling :
for j in joka :
i = i.replace(j, " ")
if i.strip() == "":
answer += 1
return answer
1. 한 줄씩 살펴보면, 먼저 조카가 발음 가능한 단어들을 "joka"라는 리스트에 담아준다.
2. babbling을 for문으로 돌리면서 joka도 함께 for문으로 비교를 한다.
3. babbling의 i에 대응하는 joka의 j가 같은게 있으면 그것을 빈 문자열 " " 로 replace() 함수를 이용해 치환해준다.
4. 모든 for문이 돌고 나면, i와 j가 대응되었던 곳은 모두 " "로 치환이 되었을 것이다.
5. 여기서, 양 끝이 빈 문자열인 것을 없앴을때 아무것도 남지 않닸다면, 그 단어는 완벽히 발음 가능한 단어 이므로,
그럴 경우에만 answer 카운터 수 +1 해준다.
아직 Python이 익숙치 않아서, strip() 같은 함수도 몰랐지만,
이렇게 문제를 풀면서 하나씩 얻어가는게 있는 것 같다.