728x90
반응형
1. 문제 설명
2. 풀이과정
해당 문제는 단어가 1자리부터 최대 5자리까지만 존재하므로 모든 경우를 구한 뒤에 찾는 것으로 해결하였다.
모든 경우를 찾을 때는 중복순열을 활용하여 찾아주었다.
- 중복순열을 구해주는 product 함수를 사용하기 위해 product 모듈을 불러온다. from itertools import product
- 중복순열을 저장해 줄 리스트를 생성한다. result = list()
- 최소 1자리 단어부터 최대 5자리 단어까지 존재하므로 각 자리 개수만큼 반복하며 for i in range(1, 6)
- 모음 리스트에서 중복을 허용하여 해당 자리 단어를 리스트로 생성한다. li = list(product(["A", "E", "I", "O", "U"], repeat=i))
- 중복순열을 구한 뒤 해당 순열을 하나씩 불러오며 for j in li
- 각 순열을 하나의 단어로 만들어 결과에 한 단어로 저장한다. result.append(''.join(k for k in j))
- 전부 구한 중복순열의 결과를 사전순으로 정렬한다. result.sort()
- 정렬한 중복순열 리스트에서 해당 단어의 인덱스를 찾아 1을 더해준 값이 정답이다. 인덱스 값으로 찾았기 때문에 번호를 붙일 때는 1을 더해줘야 한다. answer = result.index(word) + 1
반응형
3. 소스코드
from itertools import product
def solution(word):
answer = 0
result = list()
for i in range(1, 6):
li = list(product(["A", "E", "I", "O", "U"], repeat=i))
for j in li:
result.append(''.join(k for k in j))
result.sort()
answer = result.index(word) + 1
return answer
728x90
반응형
'프로그래머스 > Python' 카테고리의 다른 글
[프로그래머스] 등굣길 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.03 |
---|---|
[프로그래머스] 숫자 짝꿍 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.09.01 |
[프로그래머스] 옹알이 (2) - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.30 |
[프로그래머스] 뒤에 있는 큰 수 찾기 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.28 |
[프로그래머스] 방문 길이 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.21 |
[프로그래머스] 게임 맵 최단거리 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.20 |
[프로그래머스] 스킬트리 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.19 |
[프로그래머스] 주식가격 - 파이썬(Python) - 우당탕탕 개발자 되기 프로젝트 (0) | 2023.08.18 |