Backdrop

프로그래머스 ▸ 코딩테스트 입문

배열 회전시키기
0

문제 설명

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

제한사항

  • 3 ≤ numbers의 길이 ≤ 20
  • direction은 "left" 와 "right" 둘 중 하나입니다.

입출력 예

numbersdirectionresult
[1, 2, 3]"right"[3, 1, 2]
[4, 455, 6, 4, -1, 45, 6]"left"[455, 6, 4, -1, 45, 6, 4]

입출력 예 설명

입출력 예 #1

  • numbers 가 [1, 2, 3]이고 direction이 "right" 이므로 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를 return합니다.

입출력 예 #2

  • numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 return합니다.

풀이

이론

shift, unshift

  • shift() : 배열의 첫번째 요소를 제거하고 제거된 요소를 반환
  • unshift() : 배열의 첫번째 요소로 요소를 추가하고 배열의 새로운 길이를 반환

push()pop()는 배열의 마지막 요소를 추가하거나 제거하는 메서드예요. 이와 비슷하게 배열의 첫번째 요소를 추가하거나 제거하는 메서드는 unshift()shift()가 있어요.

코드

function solution(numbers, direction) {
  const answer = [...numbers];
  if (direction === 'left') {
    answer.push(answer.shift());
  } else {
    answer.unshift(answer.pop());
  }
 
  return answer;
}