algo lev-1 x만큼 간격이 있는 n개의 숫자 (python)
함수 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한 값들이 들어온건지 체크해야 한다.
Comments