이 프로그램에서는 사용자로부터 입력받은 문자열에 포함된 모음(vowel)의 개수를 계산합니다. 여기서는 파이썬의 집합(set) 자료형을 활용합니다. 집합은 순서가 없는 컬렉션 데이터 타입으로, 반복 가능하고 변경 가능하며 중복 요소를 허용하지 않는 특징이 있습니다.
예제
입력 : str1 = pythonprogram 출력 : 3
알고리즘
모음 개수를 세는 절차는 다음과 같습니다.
1단계: 모음의 개수를 저장할 카운터 변수를 하나 선언합니다. 2단계: 모음들로 구성된 집합(set)을 생성합니다. 3단계: 주어진 문자열의 모든 알파벳을 하나씩 순회합니다. 4단계: 해당 알파벳이 모음 집합에 존재하면 카운터를 1 증가시킵니다. 5단계: 순회가 끝나면 카운터 변수를 출력합니다.
예제 코드
# 집합(set)을 사용하여 문자열 내 모음 개수를 세는 프로그램
def countvowel(str1):
c = 0
# 모음으로 구성된 집합 생성
s = "aeiouAEIOU"
v = set(s)
# 주어진 문자열의 각 알파벳을 순회하는 루프
for alpha in str1:
# 알파벳이 모음 집합에 존재하는 경우
if alpha in v:
c = c + 1
print("모음 개수 ::>", c)
# 실행 코드
str1 = input("문자열을 입력하세요 ::>")
countvowel(str1)
실행 결과
문자열을 입력하세요 ::> pythonprogram 모음 개수 ::> 3
참고: 이 코드는 대문자와 소문자 모음을 모두 처리하기 위해 "aeiouAEIOU" 전체를 집합으로 만들었습니다. 집합의 멤버십 검사(in 연산)는 평균적으로 O(1)의 시간 복잡도를 가지므로, 리스트보다 효율적인 방식입니다.