문제보러가기

- 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

+ Recent posts