반응형
문제 설명
배열을 움직이는 연습을 하는데 좋은 문제입니다.
shift, unshift, push, pop 함수 개념을 알고있다면 해결 할 수 있습니다.
1. shift()
메서드는 배열에서 첫 번째 요소를 제거하고, 제거된 요소를 반환합니다. 이 메서드는 배열의 길이를 변하게 합니다.
const array1 = [1, 2, 3];
const firstElement = array1.shift();
console.log(array1);
// Expected output: Array [2, 3]
console.log(firstElement);
// Expected output: 1
2. unshift()
메서드는 새로운 요소를 배열의 맨 앞쪽에 추가하고, 새로운 길이를 반환합니다.
const array1 = [1, 2, 3];
console.log(array1.unshift(4, 5));
// Expected output: 5
console.log(array1);
// Expected output: Array [4, 5, 1, 2, 3]
3. pop()
메서드는 배열에서 마지막 요소를 제거하고 그 요소를 반환합니다.
const plants = ['broccoli', 'cauliflower', 'cabbage', 'kale', 'tomato'];
console.log(plants.pop());
// Expected output: "tomato"
console.log(plants);
// Expected output: Array ["broccoli", "cauliflower", "cabbage", "kale"]
plants.pop();
console.log(plants);
// Expected output: Array ["broccoli", "cauliflower", "cabbage"]
4. push()
메서드는 배열의 끝에 하나 이상의 요소를 추가하고, 배열의 새로운 길이를 반환합니다.
const animals = ['pigs', 'goats', 'sheep'];
const count = animals.push('cows');
console.log(count);
// Expected output: 4
console.log(animals);
// Expected output: Array ["pigs", "goats", "sheep", "cows"]
animals.push('chickens', 'cats', 'dogs');
console.log(animals);
// Expected output: Array ["pigs", "goats", "sheep", "cows", "chickens", "cats", "dogs"]
나의 풀이
위에 언급했던 함수들을 활용하여 간단히 해결했습니다.
function solution(numbers, direction) {
if(direction === "right")
numbers.unshift(numbers.pop());
else
numbers.push(numbers.shift());
return numbers;
}
함수들에 대해 자세히 알고싶으신 분들은 아래 링크 참조하시면 됩니다.
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/shift
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/unshift
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/pop
https://developer.mozilla.org/ko/docs/Web/JavaScript/Reference/Global_Objects/Array/push
반응형
'Javascript > 코딩테스트-연습' 카테고리의 다른 글
[JavaScript] 문자열 계산하기 - 프로그래머스 (21) | 2024.03.30 |
---|---|
[JavaScript] 소인수분해 - 프로그래머스 (27) | 2024.03.29 |
[JavaScript] 2차원으로 만들기 - 프로그래머스 (24) | 2024.03.26 |
[JavaScript] 구슬을 나누는 경우의 수 - 프로그래머스 (32) | 2024.03.26 |
[JavaScript] 모스부호(1) - 프로그래머스 (28) | 2024.03.26 |