자바스크립트

[JavaScript] 배열 회전시키기

코딩하는둥이 2023. 9. 15. 15:57
 

프로그래머스

코드 중심의 개발자 채용. 스택 기반의 포지션 매칭. 프로그래머스의 개발자 맞춤형 프로필을 등록하고, 나와 기술 궁합이 잘 맞는 기업들을 매칭 받으세요.

programmers.co.kr

문제 설명

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

 

입출력 예

number direction result
[1,2,3] "right" [3,1,2]
[4,455,6,4,-1,45,6] "left" [455,6,4,-1,45,6,4]

 

코드 

const solution = (numbers, direction) => {
    let answer = [...numbers]; 
    
    if (direction === "right") {
        const lastElement = answer.pop(); 
        answer.unshift(lastElement);
    } else {
      const lastElement = answer.shift(); 
        answer.push(lastElement);
    }
    
    return answer;
};

 

풀이

배열을 복사해 새 배열을 생성하기 위해 ...(스프레드 연산자)를 사용합니다. 

let answer = [...numbers];
더보기

... 스프레드 연산자

  : 배열/ 객체를 풀어서 그 안의 내용을 가져올 때 사용합니다. 

right일 때 오른쪽으로 순회되니깐 pop을 이용해 맨 오른쪽 요소를 제거하고 unshift로 배열 처음에 추가를 해줍니다. 

 if (direction === "right") {
        const lastElement = answer.pop(); 
        answer.unshift(lastElement);
    }
더보기

pop

 : 배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.

unshift

 : 새로운 요소를 추가하고, 새로운 길이를 반환합니다.

그 외일 때 shift를 이용해 첫 요소를 제거하고 push를 통해 마지막에 요소를 추가했습니다.

else {
      const lastElement = answer.shift(); 
        answer.push(lastElement);
    }
더보기

shift

 : 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다.

push 

 : 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다.

'자바스크립트' 카테고리의 다른 글

[JavaScript] 합성수 찾기  (0) 2023.09.18
[JavaScript] 주사위의 개수  (0) 2023.09.15
[JavaScript] 점의 위치 구하기  (0) 2023.09.15
[JavaScript] 점의 위치 구하기  (0) 2023.09.15
[jsx] jsx란?  (0) 2023.09.15