🔗 Problem Link

 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr


❔Thinking

  • ["A", "E", "I", "O", "U"]만을 사용한 5글자 이하의 단어들이 수록된 사전에서, 주어진 단어의 위치를 반환한다.
  • 사전은 "A", "AA", "AAA", "AAAA", "AAAAA"... 순서로 이루어져 있다.

💻Solution

from itertools import product
def solution(word):
    alpha = ['A','E','I','O','U']
    dictionary = []
    for i in range(1,6):
        dictionary += [''.join(w) for w in product(alpha, repeat=i)]
    dictionary = sorted(dictionary)
    return dictionary.index(word)+1

🗝️keypoint

  1. 모음만을 활용한 5글자 이하의 단어는, 모음을 중복을 허용하여 나열하는 '중복순열'로 생각할 수 있다.
  2. python이 제공하는 sort를 활용하면, 문자열의 왼쪽부터 차례대로 비교하여 정렬할 수 있다.
  3. .index('문자열')은 해당 문자열이 위치한 index를 반환한다. (여기서는 1부터 시작하므로 +1을 해야 한다.) 

+ Recent posts