Just Do IT!
[프로그래머스 Level 0] 120844. 배열 회전시키기 (JavaScript) 본문
728x90
문제 설명
정수가 담긴 배열 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") {
// 마지막 인덱스의 숫자를 제거한 후 맨 앞에 추가
// pop : 마지막 요소 제거
// unshift : 맨 앞에 추가
numbers.unshift(numbers.pop())
}
else {
// 맨 첫번째 인덱스의 숫자를 제거한 후 맨 뒤에 추가
// shift : 첫번째 요소 제거
numbers.push(numbers.shift())
}
return numbers
}
다른 사람 풀이 : 삼항연산자 사용 (훨씬 깔끔하다)
function solution(numbers, direction) {
direction === 'right' ? numbers.unshift(numbers.pop()) : numbers.push(numbers.shift());
return numbers;
}
728x90
'코딩테스트 준비 > 프로그래머스' 카테고리의 다른 글
[프로그래머스 Level 0] 120834. 외계행성의 나이 (JavaScript) (1) | 2023.01.11 |
---|---|
[프로그래머스 Level 0] 120862. 최댓값 만들기 (2) (0) | 2023.01.10 |
[프로그래머스 Level 0] 120897. 약수 구하기 (JavaScript) (0) | 2023.01.04 |
[프로그래머스 Level 0] 120899. 가장 큰 수 찾기 (JavaScript) (0) | 2023.01.03 |
[프로그래머스 level 0] 120839. 가위 바위 보 (JavaScript) (0) | 2023.01.02 |