배열에 여러 개의 소문자 단어가 있다고 가정해 봅시다. 이 단어들의 집합에 대해 다음 규칙에 따라 전체 점수를 구해야 합니다.
- 모음은 a, e, i, o, u, y로 정의합니다.
- 단어 하나의 점수는 해당 단어에 포함된 모음의 개수가 짝수일 때 2점입니다.
- 모음 개수가 홀수라면 그 단어의 점수는 1점입니다.
- 단어 집합 전체의 점수는 집합에 속한 모든 단어 점수의 합입니다.
예를 들어 입력이 words = ["programming", "science", "python", "website", "sky"]라고 한다면 결과는 6이 됩니다. "programming"에는 모음이 3개이므로 1점, "science"에는 모음이 3개이므로 1점, "python"에는 모음이 2개이므로 2점, "website"에는 모음이 3개이므로 1점, "sky"에는 모음이 1개이므로 1점입니다. 따라서 1 + 1 + 2 + 1 + 1 = 6이 됩니다.
해결 방법
이 문제는 다음 단계를 따라 해결할 수 있습니다.
- score 변수를 0으로 초기화합니다.
- words 리스트의 각 단어에 대해 반복합니다.
- num_vowels 변수를 0으로 초기화합니다.
- 단어의 각 문자에 대해 반복하며, 해당 문자가 모음이면 num_vowels 값을 1씩 증가시킵니다.
- 모음 개수(num_vowels)가 짝수이면 score에 2를 더하고, 그렇지 않으면 score에 1을 더합니다.
- 반복이 끝나면 최종 score를 반환합니다.
예제 코드
아래 구현 예시를 통해 더 자세히 이해해 보겠습니다.
def solve(words):
score = 0
for word in words:
num_vowels = 0
for letter in word:
if letter in ['a', 'e', 'i', 'o', 'u', 'y']:
num_vowels += 1
if num_vowels % 2 == 0:
score += 2
else:
score += 1
return score
words = ["programming", "science", "python", "website", "sky"]
print(solve(words))입력
["programming", "science", "python", "website", "sky"]
출력
6