문제
정수 x와 자연수 n을 입력받아 x부터 시작하여 x씩 증가하는 숫자가 n개 있는 리스트를 리턴하는 문제이다.
예를 들어 x,n 으로 2,5를 입력받으면 2부터 시작하여 2씩 증가하는 숫자 5개인 [2,4,6,8,10] 을 리턴하면 된다.
제한조건
x는 -10000000 이상, 10000000 이하이고 n은 1000이하의 자연수이다. 딱히 신경 써서 코딩하지 않았다.
답
function solution(x, n) {
var answer = []; //리턴시킬 배열
for(let i=1;i<=n;i++) { //배열의 크기는 n이기 때문에 for문으로 반복횟수를 설정함
answer.push(x*i); //x부터 시작하여 차례대로 x만큼 증가하도록 곱하기를 한 뒤 값을 넣어주었다.
}
return answer;
}
x의 수만큼 차례대로 증가하는 수를 표현할 때, for문을 사용하여 차례대로 숫자를 곱해서 표현할 수 있으면 그 외에는 어려울 것이 없었다.
다른 사람의 풀이
for문을 사용해 기본적인 방법으로 푸는 것도 좋지만 자바스크립트가 제공하는 여러 함수를 사용하여 풀 수 있으면 추후에 코딩을 할 때도 도움이 돼서 좋다고 생각한다.
그런 의미에서
Array(n).fill(x).map((v, i) => (i + 1) * v)
이런 형태의 코딩은 어떤 의미로 사용했는지 짚고 가는것도 좋겠다고 생각했다.
먼저, Array(n)로 n크기의 리스트를 생성한 뒤 fill()을 이용하여 배열 값을 채운다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/fill
문제의 예시로 사용했던 2,5 로 예를 들면 [2,2,2,2,2]가 된다. 그리고 map() 함수를 이용하여 해당 인덱스+1의 값을 곱해서 [2,4,6,8,10]을 만드는 방식으로 코딩을 짠 분도 있었다.
이런 간단명료한 코딩을 볼 때 마다 여러 함수에 대한 이해도가 뛰어나다란 생각과 저런 다양한 함수를 프로젝트를 진행하면서 능숙하게 사용할 수 있다면 많은 도움이 되겠다는 생각이 들었다.
'JAVASCRIPT > 코딩테스트' 카테고리의 다른 글
프로그래머스 코딩테스트 레벨 1 - 행렬의 덧셈 풀이 해석 및 답안 [자바스크립트] (8) | 2023.03.29 |
---|---|
[자바스크립트] 프로그래머스 레벨 2 - JadenCase 문자열 만들기 코딩테스트 해석 및 답안 (6) | 2023.03.27 |
프로그래머스 코딩테스트 레벨 1 - 직사각형 별찍기[자바스크립트] 해석 및 답안 (8) | 2023.03.22 |
[자바스크립트] 프로그래머스 레벨 1 - 내적 해석 및 답안 (1) | 2023.03.04 |
[자바스크립트]프로그래머스 레벨 2 - 이진 변환 반복하기 (5) | 2023.02.27 |
댓글