문제
요약
- A, E, I, O, U 만으로 이루어진 길이 5이하의 단어가 사전식으로 정렬되어 있다.
- 단어가 주어지면, 사전 상으로 몇 번째 단어인지 구하라.
분류
- 완전 탐색
- 수학(등비수열의 합)
풀이
1. 반복문을 이용한 풀이 (완전 탐색)
- 각 단어의 글자를 단어의 순위로 변환한다. (EX - A = 0, AAAE = 0001)
- 사전상으로 단어가 정렬되는 알고리즘을 구현한다.
def solution(word):
vowels = ['A', 'E', 'I', 'O', 'U']
word = list(word)
for i in range(len(word)):
word[i] = vowels.index(word[i])
arr = []; cnt = 0
while word != arr:
if len(arr) < 5 :
arr.append(0)
else :
if arr[-1] == 4:
while arr[-1] == 4 :
arr.pop()
arr[-1] += 1
else :
arr[-1] += 1
cnt += 1
return cnt
2. 등비수열의 합을 이용한 풀이
def solution(word):
answer = 0
for i, n in enumerate(word):
answer += (5 ** (5 - i) - 1) / (5 - 1) * "AEIOU".index(n) + 1
return answer