reverseSequence.js (8kyu 30)

Codewars 알고리즘 풀이


Problem

  • Get the number n to return the reversed sequence from n to 1.
    • n부터 1까지 연속된 수로 반환한다. (역순)


Solution 01

function reverseSequence(n) {
  let result = [];
  
  for (let i = n; i > 0; i--) {
    result.push(i);
  }
  return result;
}

reverseSequence(4);  // [4, 3, 2, 1]
reverseSequence(5);  // [5, 4, 3, 2, 1]

push() 메소드

배열의 끝에 새 element를 추가하고, 새로운 길이를 반환한다.


Solution 02

function reverseSequence(n) {
  return n === 1 ? [n] : [n].concat(reverseSequence(n - 1));
}

reverseSequence(4);  // [4, 3, 2, 1]
reverseSequence(5);  // [5, 4, 3, 2, 1]

concat() 메소드

두 개 이상의 배열을 결합하고, 새 배열을 반환한다.


Solution 03

function reverseSequence(n) {
  return n === 1 ? [n] : [n, ...reverseSequence(n - 1)];
}

reverseSequence(4);  // [4, 3, 2, 1]
reverseSequence(5);  // [5, 4, 3, 2, 1]