정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 반환하는 함수 구현하기
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
x | n | answer |
2 | 5 | [2,4,6,8,10] |
4 | 3 | [4,8,12] |
-4 | 2 | [-4, -8] |
x부터 시작해, x씩 증가해야 하므로, for
문을 사용해서 구현했다.
function solution(x, n) {
var answer = [];
for(let i = 1; i<=n; i++){
answer.push(i*x);
}
return answer;
}
※ 다른 사람의 풀이
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
Array(n)
을 사용하여 길이가 n
인 새로운 배열 생성
fill(x)
를 사용하여 배열을 x
로 채운다. 즉, 배열의 모든 요소가 x
값으로 채워진다.
map()
함수 사용
(i + 1) * v
를 통해 각 요소를 수정한다.
여기서 (i + 1)
은 현재 인덱스에 1을 더한 값이며, v
는 초기 값인 x
다.
def solution(x, n):
answer = []
# 1부터 n까지 반복
# range(start, stop) = start 부터 stop-1 까지 반복
for i in range(1,n+1):
answer.append(i*x)
return answer
list comprehension
을 사용하면 한 줄로 작성할 수 있다.
def solution(x, n):
# return [(i+1)*x for i in range(n)]
return [i * x for i in range(1, n+1)]
※ range
에 따라 i
를 곱할 수도 있고, i+1
을 곱해야 할 수도 있다.
# expression: 각 item에 대해 수행할 작업
# item: 반복할 때, 반복 가능한 각 요소
# iterable: 반복할 범위
[expression for item in iterable]
# 조건식 추가
[expression for item in iterable if condition]