알고리즘 테스트

프로그래머스-javascript) lv0 배열회전시키기

Ella Seon 2022. 11. 26. 15:19

1. 문제

정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.

 

 

2. 정답

function solution(numbers, direction) {
    var answer = [];
    if (direction==='right') {
        numbers.unshift(numbers.pop());  //맨마지막에 뺀거를 앞으로 추가
    } else {
        numbers.push(numbers.shift()); //맨 앞에 있는 걸 빼서 맨 뒤에 추가
    }
    answer = numbers;
    return answer;
}

 

2-1) shift, unshift 

shift : 배열에서 첫번째 요소를 제거하고, 제거된 요소를 반환함

unshift : 배열의 앞쪽에 하나 이상의 요소를 추가하고 변경된 배열의 길이를 반환한다.

 

둘다 원본을 변경시킨다.

const arr = [1,2,3,4,5]
console.log(arr); // [1, 2, 3, 4, 5]

console.log(arr.shift()) //1
console.log(arr.shift()) //2
console.log(arr) //[3, 4, 5]

 

const arr = [1,2,3,4,5]
console.log(arr); //[1, 2, 3, 4, 5]
arr.unshift(6,7,8);
console.log(arr) //[6, 7, 8, 1, 2, 3, 4, 5]