Lv. 1 - x만큼 간격이 있는 n개의 숫자 풀이과정
문제 설명
함수 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) {
var answer = 0;
return answer;
}
문제 풀이
const solution = (x, n) => {
const arr = [];
let num = x; // 2
for (let i = 1; i <= n; i++) {
arr.push(num);
num = num + x;
}
return arr;
};
console.log(solution(2, 5)); // [2,4,6,8,10]
함수 선언
- 화살표 함수를 사용하여
x
와n
을 매개변수를 받는다.
풀이
- 먼저 x부터 시작해서 x씩 증가하기 위해서 변수
num
에x
값을 담아준다. - 이후 증가하는 숫자를 n번 지니는 리스트를 담아줘야해서 배열을 미리 생성해둔다.
arr = []
- for 반복문을 통해 n번 동안 반복하여(
let i = 1; i <= n; i++
) arr 변수에 담아준다. - 변수에 담아준 x는 x만큼 증가해야 하기에
num = num + x
즉배열에 넣어줄 x = 배열에 넣어줄 x + 기존 x값
으로 arr변수에 담아준 후 반복문이 종료되면 변수 arr 을 리턴한다.
결과 반환
-
x
의 값은 2,n
의 값은 5일경우 [2,4,6,8,10] 을 반환한다. -
x
의 값은 4,n
의 값은 3일경우 [4,8,12] 을 반환한다. -
x
의 값은 -4,n
의 값은 2일경우 [-4,-8] 을 반환한다.
실행
-
console.log(solution(2,5))
실행하면 [2,4,6,8,10] 출력된다. -
console.log(solution(4,3))
실행하면 [4,8,12] 출력된다. -
console.log(solution(-4,2))
실행하면 [-4,-80] 출력된다.
다른 사람의 풀이 참고
같은 for문을 사용해서 문제를 풀었는데 댓글에는 근본이라고 하고 3367명이나 같은 방법으로 문제를 해결했다..
풀이 과정을 보면 현재 값 + x 값
이란 말 자체가 현재 값 x i
과 동일하다.
출력되는 값을 동일했지만, 다른 사람의 풀이 과정이 좀 더 간결하고 보기 좋은 것 같다.
// [3367명] for 문을 사용한 문제 풀이
function solution(x, n) {
var answer = [];
for (let i = 1; i <= n; i++) {
answer.push(x * i);
}
return answer;
}
링크
- 문제 링크: 문제 링크
- Git: rarrit github
출처: 프로그래머스 코딩 테스트 연습, https://school.programmers.co.kr/learn/challenges