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