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]
'알고리즘 테스트' 카테고리의 다른 글
프로그래머스 lv0-자바스크립트) 문자열 안에 문자열 (0) | 2022.12.03 |
---|---|
숨어있는 숫자의 덧셈 (0) | 2022.12.03 |
프로그래머스-javascript) lv0 외계행성의 나이 (0) | 2022.11.26 |
프로그래머스 Lv - 0 분수의 덧셈 (0) | 2022.10.31 |