https://programmers.co.kr/learn/courses/30/lessons/84512
from itertools import product as pro
def solution(word):
result = []
for i in range(1,6):
for x in pro(['A','E','I','O','U'], repeat=i):
result.append(''.join(list(x)))
result.sort()
return result.index(word)+1
풀이
1. product를 이용해서 중복을 이용해서 모든 경우의 수를 구해준다.
2. 정렬을 한다.
3. word의 인덱스를 찾고 +1을 하여 반환
5개의 단어라고 정해져 있어서 모두 생성하고 인덱스를 찾는 것만으로 간단하게 구할 수 있었다.
다만 단어의 길이가 늘어난다면 시간 초과가 일어날 가능성이 크다.
이러할 경우에는 각 알파벳마다의 단어 개수는 일정하므로 수학식을 이용해서 풀면 된다.
'Algorithm > 프로그래머스' 카테고리의 다른 글
[프로그래머스] Lv2 - 점프와 순간 이동 (파이썬) (0) | 2022.05.04 |
---|---|
[프로그래머스] Lv2 - 이진 변환 반복하기 (파이썬) (0) | 2022.05.04 |
[프로그래머스] Lv2 - 전력망을 둘로 나누기 (파이썬) (0) | 2022.05.03 |
[프로그래머스] Lv2 - 영어 끝말잇기 (파이썬) (0) | 2022.04.13 |
[프로그래머스] Lv2 - 삼각 달팽이 (파이썬) (0) | 2022.04.11 |