상세 컨텐츠

본문 제목

Javascript 재귀 함수문제(6) - reverseArr

Programming Language/JavaScript

by Yongari 2022. 12. 11. 11:28

본문

문제

배열을 입력받아 순서가 뒤집힌 배열을 리턴해야 합니다.

입력
arr : 임의의 요소를 갖는 배열


출력
순서가 뒤집힌 배열을 리턴해야 합니다.
[arr[n-1], arr[n-2], ... , arr[0]]
arr.length는 n

 

입출력 예시

let output = reverseArr([1, 2, 3]);
console.log(output); // --> [3, 2, 1]

 

 

풀이코드 설명

function reverseArr(arr) {
  //배열의 길이가 0이면 빈 배열 반환
  if (arr.length === 0){
    return [];
  }
  //배열의 첫번째 요소는 head 지정
  //배열의 두번째 요소부터 마지막까지 tail 지정
  const head = arr[0];
  const tail = arr.slice(1);
  
  //재귀함수 호출 tail에다가 head를 뒤에서 붙임으로써 재귀 호출 및 순서가 뒤집힌 배열 출력
  //concat은 메서드를 호출한 배열 뒤에 각 인수를 순서대로 붙여 새로운 배열을 만듬
  // 인수가 배열이면 그 구성요소가 순서대로 붙고, 배열이 아니면 인수 자체가 붙음
  return reverseArr(tail).concat(head);
}

 

풀이코드에 쓰인개념

Array.prototype.concat()

https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/concat



Array.prototype.slice()
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/slice 

관련글 더보기