x만큼 간격이 있는 n개의 숫자
함수 solution은 정수 x와 자연수 n을 입력 받아, x부터 시작해 x씩 증가하는 숫자를 n개 지니는 리스트를 리턴해야 합니다. 다음 제한 조건을 보고, 조건을 만족하는 함수, solution을 완성해주세요.
x n answer
2 5 [2,4,6,8,10]
4 3 [4,8,12]
-4 2 [-4, -8]
이 문제를 처음 보고 어떻게 풀지 고민하다가 처음에 아래와 같은 방법을 시도하였다.
<script>
function solution(x, n){
let answer =[];
for(let i =0; i<n;;i++){
answer.push(x+=x);
}
return answer;
}
//test
solution(2,5);
</script>
너무 멍청하게 생각했다.
for 문 내에서 x+=x; 이 시점에 x에 값이 계속 변화 하는 것을 간과한 것
그래서 원하는 결과값이 아닌 제곱수가 나와버렸다.
그래서 처음부터 다시 생각했다. 일단 노가다로 아래와 같이 써보았다.
<script>
function solution(x, n){
let answer = [];
answer.push(x);
answer.push(x+x);
answer.push(x+x+x);
answer.push(x+x+x+x);
answer.push(x+x+x+x+x);
return answer;
};
solution(2,5);
</script>
일단 원하는 결과가 나오긴 했다. 이제 저 노가다식 코드를 반복문으로 잘 처리하면 된다.
어떻게 할까 고민을 하다가 가만 보니 구구단이다....
구구단이면 초기 값 x에 1부터 n까지 순차적으로 곱해서 배열 요소에 넣어주면 될 거 같아서 아래와 같이 작성했다.
<script>
function solution(x,n){
let answer =[];
for(let i=1;i<n+1;i++){
answer.push(x*i);
}
return answer;
};
//test
solution(2,5);
</script>
이렇게 문제를 해결하였다.
문제만 보고 쉽다고 생각했고, 실제로 쉬운 문제도 맞지만 이렇게 해맨걸 생각하니 한참 모자람에 부끄러움을 느낌.