honey_pot
[Python] 모음 사전 본문
https://programmers.co.kr/learn/courses/30/lessons/84512
풀이 참고 -> https://programmers.co.kr/questions/25140
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
|
def solution(word):
# 인덱스가 순서 다섯개의 문자로 한 자리 단어만 만들면 A,E,I,O,U 순서
vowels = ['A', 'E', 'I', 'O', 'U']
p = [5 ** i for i in range(1,6)] # 각 문자길이에 따라 만들 수 있는 문자열 경우의 수
max_num = sum(p) # 경우의 수 총합 (사전의 맨 끝 단어)
answer = 0 # 문자간의 간격을 더하여 리턴할 변수
for idx,char in enumerate(word): # word의 각 문자열과 인덱스마다
if char == 'A': # 문자열이 A일 경우 사전상 가장 먼저 나올 문자가 A이므로 1만 더함
answer += 1
# 문자간의 거리 == 사전의 총 길이 / 문자열의 길이에 따라 만들 수 있는 경우의 수
# 문자열이 E일 경우 vowels 사전상 E는 2번째이므로 문자간의 거리에 순서를 곱함
# 문자간의 거리를 구하면 word는 거리 +1 의 위치에 있으므로 +1을 해준다.
elif char == 'E':
answer += (max_num//p[idx]) * 1 + 1
elif char == 'I':
answer += (max_num//p[idx]) * 2 + 1
elif char == 'O':
answer += (max_num//p[idx]) * 3 + 1
elif char == 'U':
answer += (max_num//p[idx]) * 4 + 1
return answer
|
cs |
'문제 풀이' 카테고리의 다른 글
[Python] N개의 최소공배수 (0) | 2022.06.27 |
---|---|
[Python] 배달 (0) | 2022.06.27 |
[python] 교점에 별 만들기 (0) | 2022.06.23 |
[Python] 리트코드 4sum (0) | 2022.05.14 |
[python] 뉴스 클러스터링 (0) | 2021.12.13 |
Comments