문제 8: 모음 세기
Source: Dev.to
예시
count_vowels("hello world") # → 3
count_vowels("AEIOU") # → 5
해결법
def count_vowels(s):
"""
Counts the number of vowels in a string.
"""
vowels = {'a', 'e', 'i', 'o', 'u', 'A', 'E', 'I', 'O', 'U'}
count = 0
for char in s:
if char in vowels:
count += 1
return count
# Test case
print(count_vowels("pooopcycle")) # Output: 4
풀이 과정
-
함수 정의:
def count_vowels(s):는 문자열s를 매개변수로 받는 함수를 생성합니다. -
모음 집합:
vowels = {...}은 소문자와 대문자 모음을 모두 집합에 저장하여 O(1) 조회를 가능하게 합니다. -
카운터 초기화:
count = 0은 모음 카운터를 시작합니다. -
반복:
for char in s:는 입력 문자열의 각 문자에 대해 반복합니다. -
검사 및 증가:
if char in vowels: count += 1현재 문자가 모음이면
count를 증가시킵니다. -
반환:
return count는 찾은 모음의 총 개수를 반환합니다.
"pooopcycle"에 대한 예시 추적
| 문자 | 모음 여부 | 개수 |
|---|---|---|
| p | No | 0 |
| o | Yes | 1 |
| o | Yes | 2 |
| o | Yes | 3 |
| p | No | 3 |
| c | No | 3 |
| y | No | 3 |
| c | No | 3 |
| l | No | 3 |
| e | Yes | 4 |
함수는 이 입력에 대해 올바르게 4를 반환합니다.
코딩 즐겁게! 💻