algo lev-1 x만큼 간격이 있는 n개의 숫자 (python)

less than 1 minute read

함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.

예) x=2 / n=5 라면 [2,4,6,8,10]

출처 : 프로그래머스 Level1

내가 푼 풀이

def solution(x, n):
    answer = []
    for idx in range(n) :
        answer.append(x*(idx+1))
    return answer

다른 사람들 풀이

def solution(x, n):
    return [i * x + x for i in range(n)]

괜히 어렵게 lambda() 나 map()를 생각하고 있었는데 그럴 필요가 없었다! 좀 더 쉬운 방법이 있다면 쉬운 방법 부터 떠올려 보자 @.@

배운 점

1. 빈 리스트를 만들 때는 [ ]를 사용하자

  • 뭔가 list1 = list() 가 리스트임을 명확하게 보여줘서 좋지 않을까? 라고 생각해왔었는데 검색을 해보니 아니였다..!!!
  • list() 를 사용하면 아래와 같은 과정 때문에 [] 보다 시간이 오래 걸린다고 한다. (참고)

    • symbol lookup 을 해야하고
    • list() 함수도 호출해야 하고 (function invocation)
    • 리스트의 특징인 iterable한 값들이 들어온건지 체크해야 한다.

Categories:

Updated:

Comments