[코테 풀기] 배열 회전시키기 (JS)

JCH27·2023년 11월 20일
0

coding_test

목록 보기
4/12

배열 회전시키기 문제를 풀어보겠다.
언어는 javascript
문제는 [Link] 프로그래머스 에서 풀어볼 수 있다.


문제 : 주어진 배열을 주어진 방향으로 하나씩 값을 밀어낸 뒤 리턴
예) [1,2,3,4] , 'left' => [2,3,4,1]


해결 1 - 삼항연산자와 splice 사용

	const solution = (numbers, direction) => {
  		const slicing = numbers.splice((direction==='left'?0:numbers.length-1),1);
      	// 배열을 direction에 따라 앞에서 혹은 뒤에서 값을 하나 잘라 변수에 할당
      
  		numbers.splice(direction==='left'?numbers.length:0,0,...slicing);
      	// 배열에 direction에 따라 앞 혹은 뒤에 저장된 변수값을 추가
      
  		return numbers;
      	// 배열을 리턴
	};

해결 2 - 스프레드 하여 배열 늘리기

	const solution = (numbers, direction) => {
    	const array = [...numbers,...numbers];
      	// 스프레드 하여 배열을 2배로 키운다.
	    if(direction === 'right'){
          	// 조건에 따라 시작점을 잡고 출력될 배열의 길이만큼 잘라 리턴
   		    return array.splice(numbers.length-1,numbers.length);
    	}else{
        	return array.splice(1,numbers.length);
          	// 설명 : left로 잘라야 하는 경우 두배로 늘린 배열에서 1번째 인덱스 부터
          	// 		 numbers의 길이만큼 잘라낸다.
          	// [0,1,2,3,0,1,2,3] => [0, << 1,2,3,0 >>,1,2,3]
    	}
	}

언제나 직접 수정하지 않고 원하는 데이터를 얻을 수 있는 방법을 생각해 볼 필요가 있다.

profile
포기하지 않는 키보드 워리어

0개의 댓글