코딩테스트-기록
[프로그래머스] 자바스트립트 배열 값 추가, 제거 pop(), push(), shift(), unshift() 함수
SeongwooLee
2024. 1. 24. 11:38
Lv.0 코딩 테스트 문제 中 배열 회전시키기
👉 문제 설명
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다.
배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
👉 제한사항
- 3 ≤ numbers 의 길이 ≤ 20
- direction 은 "left" 와 "right" 둘 중 하나입니다.
👉 입출력 예
numbers | direction | result |
---|---|---|
[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합니다.
👉 내가 푼 풀이
function solution(numbers, direction) {
if (direction === "right") {
numbers.unshift(numbers.pop());
} else {
numbers.push(numbers.shift());
}
return numbers;
}
내가 푼 풀이 생각 나열
1. 왼쪽, 오른쪽으로 배열안에 있는 값을 이동해야 함
2. if문이 생각남 / 만약에 문자열 'right'라면 이거해라 그게아니면(left) 이거해라
3. 배열안 인덱스 첫번째와 끝에 값 추가, 제거 해야겠다 생각함
▼ 배열(Array)에 값을 추가하는 함수
Array.push(): 배열의 제일 끝에 값 추가 // let a = [1, 2, 3] / a.push(4); = [1, 2, 3, 4]
Array.unshift(): 배열의 제일 앞에 값 추가 // let a = [1, 2] / a.unshift(0); = [0, 1, 2]
▼ 배열(Array)에 값을 제거하는 함수
Array.pop(): 배열의 제일 끝에 값 제거 // let a = [1, 2, 3] / a.push(); = [1, 2]
Array.shift(): 배열의 제일 앞에 값 제거 // let a = [1, 2] / a.unshift(); = [2]