문제보러가기
- https://school.programmers.co.kr/learn/courses/30/lessons/84512
풀이
- 시간복잡도: 중복조합 2**i (i=1~5) => 32임으로 모든 경우 탐색 가능
- 순서를 구하기 위해 먼저 모음 길이가 다른 모음 단어를 모두 조합하여 단어장에 추가하여줍니다.
- 모듬은 중복될 수 있으며, 길이가 1~5까지의 단어임으로 파이썬 itertools의 product를 사용하여 중복 조합을 하였습니다.
- 모든 단어를 구한 후 단어장을 오름차순으로 정렬하고, 주어진 word의 순서를 반환합니다.
코드
from itertools import product
def solution(word):
alphabet = ['A','E','I','O','U']
all_word = []
for i in range(1,6):
for p in product(alphabet,repeat=i):
p = ''.join(p)
all_word.append(p)
all_word.sort()
return all_word.index(word)+1
'Etc > PS' 카테고리의 다른 글
[Programmers] 전력망을 둘로 나누기 -Python3 (1) | 2022.10.11 |
---|---|
[Programmers] 입국심사 python3 (0) | 2022.09.30 |
[Kakao] 광고 삽입 Python3 (0) | 2022.09.29 |
[Kakao] 순위 검색 Python3 (0) | 2022.09.29 |
BOJ_2217 로프 -Python3 (0) | 2022.08.14 |