문제 및 제한사항
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
**제한사항**
3 ≤ numbers의 길이 ≤ 20
direction은 "left" 와 "right" 둘 중 하나입니다.
풀이 방법
예를 들어 numbers=[1, 2, 3]일 때, direction이 right라면 [3, 1, 2]가 리턴되어야 한다.
if문으로 방향이 right인지 left인지 나누어준다.
right라면 맨 오른쪽의 요소를 삭제 > 맨 왼쪽으로 넣어주어야 한다.
삭제할 때에는 pop()을, 맨 왼쪽으로 추가할 때에는 unshift()를 써주었다.
unshift는 배열의 맨 앞쪽에 추가하는 메서드로, 맨 끝에 추가하는 push와는 위치가 다르다.
left라면 맨 왼쪽의 요소를 삭제 > 맨 오른쪽으로 넣어주어야 한다.
삭제할 때에는 shift()을, 추가할 때에는 push()를 써주었다.
shift는 배열의 첫 번째 요소를 제거하고 반환하는 매서드다.
코드
function solution(numbers, direction) {
if ("right" == direction) {
numbers.unshift(numbers.pop());
} else {
numbers.push(numbers.shift());
}
return numbers;
}
처음에는 이렇게 안 풀고 더 어렵게 풀었다. ^_^;
function solution(numbers, direction) {
if (direction === 'right') {
let tmp = numbers[numbers.length-1];
numbers.splice(-1, 1);
numbers.unshift(tmp);
return numbers
} else {
let tmp = numbers[0];
numbers.splice(0, 1);
numbers.push(tmp);
return numbers
}
}
right의 경우 가장 맨 끝 요소를 tmp로 선언하고, 그걸 잘라준 후 unshift로 맨 앞에 넣어주었다.
left의 경우 가장 맨 앞 요소를 tmp로 선언하고, 그걸 잘라준 후 push로 맨 뒤에 넣어주었다.
pop과 shift를 사용하지 않아서 splice로 자르고 사용했는데 이래서 매서드를 많이 알아야하는군 필요성을 느꼈다.
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 외계행성의 나이 (0) | 2023.03.26 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 가장 큰 수 찾기 (0) | 2023.03.26 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 인덱스 바꾸기 (0) | 2023.03.26 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 직각삼각형 출력하기 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 최댓값 만들기 (2) (0) | 2023.03.25 |
문제 및 제한사항
정수가 담긴 배열 numbers와 문자열 direction가 매개변수로 주어집니다. 배열 numbers의 원소를 direction방향으로 한 칸씩 회전시킨 배열을 return하도록 solution 함수를 완성해주세요.
**제한사항**
3 ≤ numbers의 길이 ≤ 20
direction은 "left" 와 "right" 둘 중 하나입니다.
풀이 방법
예를 들어 numbers=[1, 2, 3]일 때, direction이 right라면 [3, 1, 2]가 리턴되어야 한다.
if문으로 방향이 right인지 left인지 나누어준다.
right라면 맨 오른쪽의 요소를 삭제 > 맨 왼쪽으로 넣어주어야 한다.
삭제할 때에는 pop()을, 맨 왼쪽으로 추가할 때에는 unshift()를 써주었다.
unshift는 배열의 맨 앞쪽에 추가하는 메서드로, 맨 끝에 추가하는 push와는 위치가 다르다.
left라면 맨 왼쪽의 요소를 삭제 > 맨 오른쪽으로 넣어주어야 한다.
삭제할 때에는 shift()을, 추가할 때에는 push()를 써주었다.
shift는 배열의 첫 번째 요소를 제거하고 반환하는 매서드다.
코드
function solution(numbers, direction) {
if ("right" == direction) {
numbers.unshift(numbers.pop());
} else {
numbers.push(numbers.shift());
}
return numbers;
}
처음에는 이렇게 안 풀고 더 어렵게 풀었다. ^_^;
function solution(numbers, direction) {
if (direction === 'right') {
let tmp = numbers[numbers.length-1];
numbers.splice(-1, 1);
numbers.unshift(tmp);
return numbers
} else {
let tmp = numbers[0];
numbers.splice(0, 1);
numbers.push(tmp);
return numbers
}
}
right의 경우 가장 맨 끝 요소를 tmp로 선언하고, 그걸 잘라준 후 unshift로 맨 앞에 넣어주었다.
left의 경우 가장 맨 앞 요소를 tmp로 선언하고, 그걸 잘라준 후 push로 맨 뒤에 넣어주었다.
pop과 shift를 사용하지 않아서 splice로 자르고 사용했는데 이래서 매서드를 많이 알아야하는군 필요성을 느꼈다.
'⚙️ 코딩테스트' 카테고리의 다른 글
[JavaScript] 프로그래머스 코딩테스트 입문 : 외계행성의 나이 (0) | 2023.03.26 |
---|---|
[JavaScript] 프로그래머스 코딩테스트 입문 : 가장 큰 수 찾기 (0) | 2023.03.26 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 인덱스 바꾸기 (0) | 2023.03.26 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 직각삼각형 출력하기 (0) | 2023.03.25 |
[JavaScript] 프로그래머스 코딩테스트 입문 : 최댓값 만들기 (2) (0) | 2023.03.25 |