배열 회전시키기 문제를 풀어보겠다.
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.
문제 : 주어진 배열을 주어진 방향으로 하나씩 값을 밀어낸 뒤 리턴
예) [1,2,3,4] , 'left' => [2,3,4,1]
const solution = (numbers, direction) => {
const slicing = numbers.splice((direction==='left'?0:numbers.length-1),1);
// 배열을 direction에 따라 앞에서 혹은 뒤에서 값을 하나 잘라 변수에 할당
numbers.splice(direction==='left'?numbers.length:0,0,...slicing);
// 배열에 direction에 따라 앞 혹은 뒤에 저장된 변수값을 추가
return numbers;
// 배열을 리턴
};
const solution = (numbers, direction) => {
const array = [...numbers,...numbers];
// 스프레드 하여 배열을 2배로 키운다.
if(direction === 'right'){
// 조건에 따라 시작점을 잡고 출력될 배열의 길이만큼 잘라 리턴
return array.splice(numbers.length-1,numbers.length);
}else{
return array.splice(1,numbers.length);
// 설명 : left로 잘라야 하는 경우 두배로 늘린 배열에서 1번째 인덱스 부터
// numbers의 길이만큼 잘라낸다.
// [0,1,2,3,0,1,2,3] => [0, << 1,2,3,0 >>,1,2,3]
}
}
언제나 직접 수정하지 않고 원하는 데이터를 얻을 수 있는 방법을 생각해 볼 필요가 있다.