[프로그래머스 Lv2] 모음사전(python)

이진규·2022년 3월 3일
1

프로그래머스(PYTHON)

목록 보기
33/64

문제

https://programmers.co.kr/learn/courses/30/lessons/84512

나의 코드 (답안참조)

"""
1. 아이디어

2. 시간복잡도

"""

from itertools import product

def solution(word):
    
    vowels = "AEIOU"
    vowels1 = list(vowels)
    vowels2 = [ ''.join(word) for word in product(vowels, repeat=2) ]
    vowels3 = [ ''.join(word) for word in product(vowels, repeat=3) ]
    vowels4 = [ ''.join(word) for word in product(vowels, repeat=4) ]
    vowels5 = [ ''.join(word) for word in product(vowels, repeat=5) ]
    
    vowel_dict = vowels1 + vowels2 + vowels3 + vowels4 + vowels5
    vowel_dict.sort()
    
    return vowel_dict.index(word) + 1
    

설명

위의 문제의 핵심은 product 함수와 list의 index함수를 활용할 수 있는가 입니다.
product 함수는 곱집합을 구하는 함수로 자세한 사항은 다음 블로그를 참조하면 이해가 쉬울 것입니다.

https://programmers.co.kr/learn/courses/4008/lessons/12835

그 다음 list의 index함수는 리스트 내에서 인덱스 값을 반환해주는 함수로 우리가 흔히 생각하는 숫자보다 -1 작기 때문에 return을 할때 +1을 해주었습니다.

참고로 마지막에 리스트를 sort() 해준 이유는 문제에서 요구한 사전 순으로 배치하기 위함 입니다. 파이썬에서 문자열의 sort()는 사전 순으로 정렬이 됩니다.

참고자료

https://somjang.tistory.com/entry/Programmers-%EC%9C%84%ED%81%B4%EB%A6%AC-%EC%B1%8C%EB%A6%B0%EC%A7%80-5%EC%A3%BC%EC%B0%A8-%EB%AA%A8%EC%9D%8C%EC%82%AC%EC%A0%84-Python

profile
항상 궁금해하고 공부하고 기록하자.

0개의 댓글