🔗 Problem Link
❔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
- 모음만을 활용한 5글자 이하의 단어는, 모음을 중복을 허용하여 나열하는 '중복순열'로 생각할 수 있다.
- python이 제공하는 sort를 활용하면, 문자열의 왼쪽부터 차례대로 비교하여 정렬할 수 있다.
- .index('문자열')은 해당 문자열이 위치한 index를 반환한다. (여기서는 1부터 시작하므로 +1을 해야 한다.)
'코딩테스트 > Python' 카테고리의 다른 글
[Programmers] Level 2. 2개 이하로 다른 비트 (0) | 2022.09.29 |
---|---|
[Baekjoon] 1439번 - 뒤집기 (0) | 2022.09.27 |
[Programmers] Level 2. 파일명 정렬 (1) | 2022.09.27 |
[LeetCode] 409. Longest Palindrome (0) | 2022.09.26 |
[Programmers] Level 2. 땅따먹기 (0) | 2022.09.25 |