과거 프로그래밍 자료들/코딩테스트
[자바스크립트] 프로그래머스 - x만큼 간격이 있는 n개의 숫자
평부
2022. 6. 22. 17:31
* 출처
https://programmers.co.kr/learn/courses/30/lessons/12954?language=javascript
문제
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
|
* 문제
함수 solution은 정수 x와 자연수 n을 입력 받아,
x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다.
다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
* 제한 조건
x는 -10000000 이상, 10000000 이하인 정수입니다.
n은 1000 이하인 자연수입니다.
* 입출력 예시
x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4, -8
* 문제
function solution(x, n) { //x = 시작값 및 증가할 값, n은 몇 개를 출력할 지
var answer = []; //값을 넣을 배열
return answer; //배열 형식으로 출력
}
|
cs |
풀이
- push() 메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다.
1
2
3
4
5
6
7
|
function solution(x, n) {
var answer = [];
for(let i=1; i<n+1; i++) { //i=1부터 시작해야 함, n만큼 출력하기 위해 i<n+1 사용
answer.push(x*i); //push는 배열의 끝에 값을 추가하는
}
return answer;
}
|
cs |
다른 풀이
- fill() 메서드는 배열의 시작 인덱스부터 끝 인덱스의 이전까지 정적인 값 하나로 채웁니다.
- map() 메서드는 배열 내의 모든 요소 각각에 대하여 주어진 함수를 호출한 결과를 모아 새로운 배열을 반환합니다.
1
2
3
4
5
6
7
8
9
|
function solution(x, n) {
return Array(n).fill(x).map((v, i) =>
//i = [0, 1, 2, 3, 4]
//v = [2, 2, 2, 2, 2]
(i+1)*v
)
}
|
cs |