-
Programmers - 배열 회전시키기 (Javascript)개발/코딩 테스트 2022. 12. 14. 17:07
정수 배열 numbers의 원소를 문자열 direction 방향으로 한 칸씩 회전시킨 배열을 반환하는 문제
numbers 가 [1, 2, 3]이고 direction이 "right" 이면 오른쪽으로 한 칸씩 회전시킨 [3, 1, 2]를,
numbers 가 [4, 455, 6, 4, -1, 45, 6]이고 direction이 "left" 이므로 왼쪽으로 한 칸씩 회전시킨 [455, 6, 4, -1, 45, 6, 4]를 반환하면 된다.
[나의 풀이]
12345678910111213141516171819202122function solution(numbers, direction) {let answer = [];const directions = {right: 1,left: -1,};numbers.forEach((number, index) => {let newIndex = index + directions[direction];if ( newIndex < 0 ) {newIndex = numbers.length - 1;} else if ( newIndex > numbers.length - 1 ) {newIndex = 0;}answer[newIndex] = number;});return answer;}cs [다른 사람의 풀이]
12345678910111213function solution(numbers, direction) {var answer = [];if ("right" == direction) {numbers.unshift(numbers.pop());} else {numbers.push(numbers.shift());}answer = numbers;return answer;}cs 12345function solution(numbers, direction) {return direction === "right"? [numbers[numbers.length - 1], ...numbers.slice(0, numbers.length - 1)]: [...numbers.slice(1), numbers[0]];}cs Array 내장함수를 잘 조합하면 훨씬 더 간결하게 풀 수 있는 문제
- pop(): 배열의 마지막 요소를 제거. 함수 반환값은 제거된 마지막 요소
- shift(): 배열의 첫번째 요소를 제거. 함수 반환값은 제거된 첫번째 요소
- unshift(): 새로운 요소를 배열의 맨 앞 쪽에 추가. 함수 반환값은 새로운 배열의 길이
- slice(): 주어진 인덱스 범위에 해당하는 배열의 얕은 복사값을 반환. 원본 배열은 변경되지 않음.
- splice(): 주어진 인덱스 위치에 요소를 추가하거나 제거. 원본 배열을 변경. 함수 반환값은 제거된 요소 배열
'개발 > 코딩 테스트' 카테고리의 다른 글
Programmers - 문자 반복 출력하기 (Javascript) (0) 2022.12.13 [Programmers] 양꼬치 (Javascript) (0) 2022.12.08 [Programmers] 각도기 (Javascript) (0) 2022.12.08 [Programmers] 숫자 비교하기 (Javascript) (0) 2022.12.08 Programmers - 두 개 뽑아서 더하기 (Javascript) (0) 2021.02.06 댓글