문제 이해하기
이번 문제는 JavaScript 함수를 작성하여, 하나의 숫자를 입력받으면 n부터 1까지의 모든 자연수를 역순으로 담은 배열을 반환하는 것입니다.
예를 들어, 입력값이 6이라면 [6, 5, 4, 3, 2, 1]과 같은 배열이 결과로 나와야 합니다.
입력 예시
const num = 6;
출력 예시
const output = [ 6, 5, 4, 3, 2, 1 ];
해결 방법
구현 접근 방식은 다음과 같습니다.
- 입력받은 숫자가 소수일 수 있으므로
Math.round()를 사용해 가장 가까운 정수로 반올림합니다. - 음수가 입력될 경우를 대비해
Math.abs()로 절댓값을 구합니다. - 빈 배열을 준비한 뒤, for 반복문으로 num부터 1까지 숫자를 역순으로 배열에 추가(push)합니다.
- 완성된 배열을 반환합니다.
코드 구현
다음은 위 로직을 화살표 함수(arrow function)로 작성한 전체 코드입니다.
const num = 6;
const reverseArray = (num = 1) => {
// 소수는 반올림하고, 음수는 절댓값으로 변환
num = Math.round(num);
num = Math.abs(num);
const res = [];
// num부터 1까지 역순으로 배열에 추가
for(let i = num; i > 0; i--){
res.push(i);
};
return res;
};
console.log(reverseArray(num));실행 결과
위 코드를 실행하면 콘솔에 다음과 같은 결과가 출력됩니다.
[ 6, 5, 4, 3, 2, 1 ]
마무리
이처럼 간단한 반복문만으로도 특정 숫자부터 1까지의 자연수를 담은 역순 배열을 손쉽게 만들 수 있습니다. 입력값 검증(반올림, 절댓값 처리)을 함께 해두면 예상치 못한 입력에도 안정적으로 동작하는 견고한 함수가 됩니다.