본문 바로가기

verdantjuly/코딩테스트

프로그래머스 코딩테스트 입문 : 배열 회전시키기 (javascript, 20230705)

728x90

문제 바로가기: https://school.programmers.co.kr/learn/courses/30/lessons/120844

나의 풀이

function solution(numbers, direction) {
    if(direction == "right"){
        const last = numbers[numbers.length-1]
        for(i=numbers.length-1;i>=0;i--){
            numbers[i]=numbers[i-1]
        }
        numbers[0] = last
        return numbers
    } else if (direction == "left"){
        const first = numbers[0]
        for(i=1;i<numbers.length;i++){
            numbers[i-1]=numbers[i]
        }
        numbers[numbers.length-1] = first
        return numbers
    }
}

 

다른 사람의 풀이

function solution(numbers, direction) {
    direction === 'right' ? numbers.unshift(numbers.pop()) : numbers.push(numbers.shift());
    return numbers;
}

 

 

function solution(numbers, direction) {
  return direction === "right"
    ? [numbers[numbers.length - 1], ...numbers.slice(0, numbers.length - 1)]
    : [...numbers.slice(1), numbers[0]];
}

 

소감

shift를 이용하고 싶었는데 그런 풀이를 발견하여 반갑다.