https://programmers.co.kr/learn/courses/30/lessons/84512
코딩테스트 연습 - 모음사전
사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니
programmers.co.kr
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 |