코딩테스트

[프로그래머스] 배열 회전시키기

john-lennon 2026. 6. 4. 14:20

문제 설명 

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

 

제한사항

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

입출력 예

numbers direction result
[1, 2, 3] "rigth" [3, 1, 2]
[4, 455, 6, 4, -1, 45, 6] "left" [455, 6, 4, -1, 45, 6, 4]

 


 

나의 코드

function solution(numbers, direction) {

    if (direction === "left") {
        numbers.push(numbers.shift());
    } else {
        numbers.unshift(numbers.pop());
    }
    
    return numbers;
    
}

 

방식

1. 왼쪽 회전(left)은 맨 앞 원소를 맨 뒤로 이동한다.

2. 맨 앞 원소를 꺼내기 위해 shift()를 사용한다.

3. 꺼낸 원소를 맨 뒤에 넣기 위해 push()를 사용한다.

4. 오른쪽 회전(right)은 맨 뒤 원소를 맨 앞으로 이동한다.

5. 맨 뒤 원소를 꺼내기 위해 pop()을 사용한다.

6. 꺼낸 원소를 맨 앞에 넣기 위해 unshift()를 사용한다.

 

 

push() → 맨 뒤 추가
pop() → 맨 뒤 제거
unshift() → 맨 앞 추가
shift() → 맨 앞 제거