Skip to content

Latest commit

 

History

History
33 lines (25 loc) · 1.48 KB

File metadata and controls

33 lines (25 loc) · 1.48 KB

🏭 프로그래머스 모음 사전

  • Date : 2021.01.09(일)
  • Time : 20분

문제 설명

  • 사전에 알파벳 모음 'A', 'E', 'I', 'O', 'U'만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 "A"이고, 그다음은 "AA"이며, 마지막 단어는 "UUUUU"입니다. 단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요.

제한 사항

  • word의 길이는 1 이상 5 이하입니다.
  • word는 알파벳 대문자 'A', 'E', 'I', 'O', 'U'로만 이루어져 있습니다.

예시

  • word : "AAAAE"
  • result : 6

풀이

from itertools import product

def solution(word):
    dict = []
    for i in range(1,6) :
        dict += list(map(''.join, product("AEIOU", repeat = i)))
    dict.sort()
    
    answer = dict.index(word) + 1
    
    return answer

: 먼저 5개의 모음으로 만들 수 있는 경우의 수를 만들어서 딕셔너리에 넣어주었다. 딕셔너리를 사용한 이유는 항상 말하지만 중복을 거르기 위해서이다. 그리고 itertools의 product는 두 개 이상의 리스트의 모든 조합을 구할 때 사용한다. "AEIOU"에서 조합을 만들어내기 위해 사용하였다. 이렇게 조합을 구하고 정렬한 후에 index를 구해주면 된다. +1을 한 이유는 배열에서는 0번부터 시작이기 떄문이다.