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