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

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

Python3


문제 설명

사전에 알파벳 모음 ‘A’, ‘E’, ‘I’, ‘O’, ‘U’만을 사용하여 만들 수 있는, 길이 5 이하의 모든 단어가 수록되어 있습니다. 사전에서 첫 번째 단어는 “A”이고, 그다음은 “AA”이며, 마지막 단어는 “UUUUU”입니다.

단어 하나 word가 매개변수로 주어질 때, 이 단어가 사전에서 몇 번째 단어인지 return 하도록 solution 함수를 완성해주세요.

제한사항

  • word의 길이는 1 이상 5 이하입니다.
  • word는 알파벳 대문자 ‘A’, ‘E’, ‘I’, ‘O’, ‘U’로만 이루어져 있습니다.

입출력 예

word result
"AAAAE" 6
"AAAE" 10
"I" 1563
"EIO" 1189

입출력 예 설명

입출력 예 #1

사전에서 첫 번째 단어는 “A”이고, 그다음은 “AA”, “AAA”, “AAAA”, “AAAAA”, “AAAAE”, … 와 같습니다. “AAAAE”는 사전에서 6번째 단어입니다.

입출력 예 #2

“AAAE”는 “A”, “AA”, “AAA”, “AAAA”, “AAAAA”, “AAAAE”, “AAAAI”, “AAAAO”, “AAAAU”의 다음인 10번째 단어입니다.

입출력 예 #3

“I”는 1563번째 단어입니다.

입출력 예 #4

“EIO”는 1189번째 단어입니다.



풀이


python

1
2
3
4
5
6
7
8
9
10
11
12
13
def solution(word):

basic = list('AEIOU')
book = set(basic)
temp = []
for i in range(4):
for word_ in book:
for apb in basic:
temp.append(word_+apb)
book.update(temp)
temp=[]

return sorted(list(book)).index(word) + 1



설명


복잡하게 생각하면 오히려 난이도가 높아지는 문제다.

나도 처음에는 단어가 배열되는 규칙을 찾아 값이 나오는 함수를 구현하려 했는데, 문득 수학 문제를 풀고있는 것이 아닌가란 생각이 들었다.

코딩 문제란 것을 잊지 않으면, 사전 자체를 만들어버리는 생각을 떠올리는 것은 간단하다.

사전 단어들은 기존 단어에 A E I O U의 모음 단어 하나씩 오른쪽에 더하는 과정을 4번 반복하면 된다.

출처: 프로그래머스 코딩 테스트 연습, https://programmers.co.kr/learn/challenges


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

https://sklubmk.github.io/2021/08/30/ef36d4eaefde/

Author

Jinki Kim

Posted on

2021-08-30

Updated on

2021-08-30

Licensed under

댓글