99Club
Posts

© 2025. woongsnote All rights reserved.

Beginner
2024-04-09

x만큼 간격이 있는 n개의 숫자

정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 반환하는 함수 구현하기

#99일지#99클럽#TIL#개발자스터디#코딩테스트#항해
직접 풀러가기

문제 설명

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

제한 사항

  • x는 -10000000 이상, 10000000 이하인 정수입니다.
  • n은 1000 이하인 자연수입니다.
xnanswer
25[2,4,6,8,10]
43[4,8,12]
-42[-4, -8]

풀이

x부터 시작해, x씩 증가해야 하므로, for문을 사용해서 구현했다.

JavaScript

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)
}
  1. Array(n)을 사용하여 길이가 n인 새로운 배열 생성
  2. fill(x)를 사용하여 배열을 x로 채운다. 즉, 배열의 모든 요소가 x값으로 채워진다.
  3. map() 함수 사용
  4. (i + 1) * v를 통해 각 요소를 수정한다. 여기서 (i + 1)은 현재 인덱스에 1을 더한 값이며, v는 초기 값인 x다.
  5. 수정된 값으로 이루어진 새로운 배열을 반환한다.
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을 곱해야 할 수도 있다.

💡list comprehension

# expression: 각 item에 대해 수행할 작업
# item: 반복할 때, 반복 가능한 각 요소
# iterable: 반복할 범위
[expression for item in iterable]

# 조건식 추가
[expression for item in iterable if condition]