[Codility] Lesson2) Array : CyclicRotation
문제
주어진 배열 A의 요소들을 K만큼 로테이션을 돌린 배열을 반환한다.
ex)
solution([3, 8, 9, 7, 6], 3)
>>
[3, 8, 9, 7, 6] -> [6, 3, 8, 9, 7]
[6, 3, 8, 9, 7] -> [7, 6, 3, 8, 9]
[7, 6, 3, 8, 9] -> [9, 7, 6, 3, 8]
내가 푼 소스코드
function solution(A, K) {
let arr = A.length==0 ? [] : A;
if (arr.length == K){
return arr;
}
for (let i = 0; i < K; i++){
let tail = arr.pop();
A.unshift(tail);
}
return arr;
}
이 문제는 효율성보다는 정확성을 테스트한다고 한다.
그래서 처음에 주어진 배열 A의 유효성을 검증하지 못하고 그냥 풀어서 empty 배열이 인풋일 때 런타임 에러가 떴다.
이 코드에서는 A.length가 0인지 확인해서 undefined인 경우 [] 빈 배열로 선언해 주는 코드가 가장 중요한 것 같다.
References
'프로그래밍 언어 > Javascript' 카테고리의 다른 글
[Javascript/프로그래머스] 완전탐색 : 카펫 (0) | 2021.04.24 |
---|---|
[Javascript/Codility] Lesson3) Time Complexity : FrogJump (0) | 2021.04.20 |
[Javascript/Codility] Lesson 1) Iterations : BinaryGap (0) | 2021.04.20 |
VScode에서 snippet 사용하기 (0) | 2021.03.03 |
[프로그래머스 코딩테스트 연습] 스택/큐 4. 기능개발 (Javascript 자바스크립트) (0) | 2021.03.02 |