[프로그래머스]Lv.2 모음사전(Python)
https://school.programmers.co.kr/learn/courses/30/lessons/84512
프로그래머스
코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.
programmers.co.kr
문제 접근 방식
접근 방식이 떠오르지 않았다.
우선 입력값을 리스트 안에 넣고, 각 경우의 수가 5^0 + 5^1 + 5^2 + 5^3 + 5^4 = 781개임을 확인하였다.
우선 모든 가능한 단어를 하나의 리스트에 정렬해서 대입한 후에 원하는 단어의 인덱스를 찾은 후 + 1을 해주는게 어떨까?
코드
from itertools import product
def solution(word):
answer = 0
total = []
alphas = ['A', 'E', 'I', 'O', 'U']
for i in range(1, 6): # 최소 1자리 단어부터 최대 5자리 단어까지 존재
words = list(product(alphas, repeat = i)) # product 사용법
for j in words:
total.append(''.join(k for k in j)) # 코드 유의
total.sort() # total 단어들 정렬
answer = total.index(word) + 1
return answer
회고
탐색 문제이므로 dfs를 이용한 코드도 찾아봐야겠다.
사전을 미리 만들어두는 것이 비효율적이라고 생각했는데 아니었다.
참고
https://developer-project.tistory.com/257
[프로그래머스] 모음사전 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트
프로그래머스 코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요. programmers.co.kr 1. 문제
developer-project.tistory.com
[Python] 순열, 조합, 중복순열, 중복조합(itertools를 활용한 구현)
순열, 조합, 중복순열, 중복조합의 정의와 차이를 비교하고 itertool 패키지를 활용해 python으로 구현해본다.
velog.io