코딩테스트-기록

[프로그래머스] 자바스트립트 배열 값 추가, 제거 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]