[프로그래머스/Javascript] 배열 회전시키기

TED·2023년 9월 14일
0

Javascript CodingTest

목록 보기
28/63
post-thumbnail

배열 회전시키기

function solution(numbers, direction) {
  const length = numbers.length;
  const answer = [];

  if (direction === "right") {
   for (let i = 0; i < length; i++) {
      const newIndex = (i + 1) % length;
        // 현재 인덱스에서 1을 더한 후 배열 길이로 나눈 나머지를 새로운 인덱스로 사용
      answer[newIndex] = numbers[i];
    }
  } else if (direction === "left") {
    for (let i = 0; i < length; i++) {
      const newIndex = (i - 1 + length) % length;
    // 현재 인덱스에서 1을 뺀 후 음수가 되지 않도록 length를 더하고 배열 길이로 나눈 나머지를 새로운 인덱스로 사용
      answer[newIndex] = numbers[i];
    }
  }

  return answer;
}
  • 나의 풀이
    : 예시를 보면 쉽게 이해가 될 것이다.
    초기 배열: [1, 2, 3]
    i = 0일 때:
    newIndex = (0 + 1) % 3 = 1 % 3 = 1로 계산
    따라서 answer[1] = numbers[0]
    answer 배열: [, 1, ]
    i = 1일 때:
    newIndex = (1 + 1) % 3 = 2 % 3 = 2로 계산
    따라서 answer[2] = numbers[1]
    answer 배열: [_, 1, 2]
    i = 2일 때:
    newIndex = (2 + 1) % 3 = 3 % 3 = 0로 계산
    따라서 answer[0] = numbers[2]
    answer 배열: [3, 1, 2]
    따라서 결과 배열은 [3, 1, 2]
    나누어지는 수 = 나누는 수 × 몫 + 나머지
function solution(numbers, direction) {  
    if(direction === 'right'){  
        const n = numbers.pop();  
        numbers.unshift(n);  
    } else{  
        const n = numbers.shift();  
        numbers.push(n);  
    }  

    return numbers;  
}
  • ⭐️⭐️다른 사람 풀이⭐️⭐️
    천재같당... 메소드를 아냐 모르냐의 힘인거같다 이런 답안이..

push() : 배열 끝에 요소를 추가
pop() : 배열 끝 요소를 제거하고 그 요소를 반환
unshift() : 배열 맨 앞에 요소를 추가
shift() : 배열 맨 앞 요소를 제거하고 그 요소를 반환

profile
컴맹 개발 입문자

0개의 댓글