채린씨의 티스토리
[Programmers] Level1 - x만큼 간격이 있는 n개의 숫자(JavaScript) 본문
문제 설명
함수 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] |
나의 풀이
for문을 사용해서 간단히 풀 수 있다. 매번 x씩 증가하므로 이를 변수 add_gap에 저장해두고, x를 add_gap만큼 증가시키며 배열에 넣으면 된다!
function solution(x, n) {
var answer = [];
let add_gap = x;
// n번 반복
for (let i = 0; i < n; i++) {
answer.push(x); // 처음 배열에 넣을 x
x += add_gap; // x를 배열에 넣은 후 x값을 add_gap만큼 증가
}
return answer;
}
좋았던 다른 사람의 풀이 1
사실 문제를 읽고 바로 와다다 코드를 작성하는 대신, 1초만 더 생각했다면 x의 배수들로 구성된 배열이라는 것을 알 수 있었을 것이다.. 그랬다면 add_gap 같은 변수는 필요가 없었을 것.. 항상 내가 지금 뭘 구현하고 싶은지 그 궁극적인 목적을 생각하자..!!
function solution(x, n) {
var answer = [];
for (let i = 1; i <= n; i++) {
answer.push(x*i)
}
return answer;
}
좋았던 다른 사람의 풀이 2
n 크기의 배열을 만들고, x로 이 배열을 채운 뒤, 배열의 각 요소에 콜백 함수를 실행하는 .map을 이용하였다! 코딩테스트 문제를 짧게 풀어낸다고 다 좋은 것은 아니지만, 새로운 접근이고 신기하다! 그리고 이런 방식으로 해결했을 때 훨씬 효율적인 문제도 있을 것..!! https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/map
function solution(x, n) {
return Array(n).fill(x).map((v, i) => (i + 1) * v)
}
'코딩테스트 대비' 카테고리의 다른 글
[Programmers] Level1 - 하샤드 수(JavaScript) (0) | 2022.04.01 |
---|---|
[Programmers] Level1 - 핸드폰 번호 가리기(JavaScript) (0) | 2022.04.01 |
[Programmers] Level1 - 완주하지 못한 선수(JavaScript) (0) | 2022.03.22 |
[Programmers] Level1 - 행렬의 덧셈(JavaScript) (0) | 2022.03.22 |
[Programmers] Level1 - 직사각형 별찍기(JavaScript) (0) | 2022.03.22 |
Comments