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

.·2022년 4월 9일

문제 링크 - https://programmers.co.kr/learn/courses/30/lessons/84512



나의 풀이

from itertools import product
def solution(word):
    dict = []
    for i in range(1, 6):
        dict.extend((list(map(''.join, product(['A', 'E', 'I', 'O', 'U'], repeat = i)))))
    dict.sort()
    return dict.index(word)+1
  • 예전에 답 보고 풀었던 풀이
  • A, E, I, O, U로 만들 수 있는 모든 경우의 수를 만들어서 dict에 extend
  • extend는 iterable한 객체의 각 항목을 넣음
  • append와의 차이
    x = [1,2,3,4]
    y = [1,2]
    x.append(y) # x = [1,2,3,4,[1,2]]
    x.extend(y) # x [ 1,2,3,4,1,2]
    x = [1,2,3,4]
    y = [[1,2], [3,4]]
    x.append(y) # x = [1,2,3,4,[[1,2], [3,4]]]
    x.extend(y) # x = [1,2,3,4,[1,2], [3,4]]

다른 사람의 풀이

from itertools import product

solution = lambda word: sorted(["".join(c) for i in range(5) for c in product("AEIOU", repeat=i+1)]).index(word) + 1
  • 어떻게 이렇게 푸는걸까..?

느낀점

  • 문제풀 때 extend도 잘 활용해보기

0개의 댓글