주어진 숫자 배열 A를 K번만큼 요소의 인덱스를 한 칸씩 이동한 배열을 리턴하는 함수를 작성하는 문제입니다. 배열의 마지막 요소는 맨 앞으로 이동합니다.
// 배열 메서드 pop()과 unshift()를 사용하여
// K번만큼 맨 뒤 요소를 맨 앞으로 이동시킵니다.
function solution(A, K) {
for (let i = 0; i < K; i++) {
const poped = A.pop();
A.unshift(poped);
}
return A;
}
채점 결과 빈 배열이 주어졌을 때의 예외 처리를 하지 않아 런타임 에러가 발생했습니다.
(input
이 ([], 0)
일 경우)
function solution(A, K) {
// A가 빈 배열이 아니고 K가 0이 아닌 경우에만 for 문을 실행하고
// 그 외의 경우는 A를 그대로 리턴합니다.
if (A.length !== 0 && K !== 0) {
for (let i = 0; i < K; i++) {
const poped = A.pop();
A.unshift(poped);
}
}
return A;
}
문제를 이해하기 위해서 테스트 케이스를 바탕으로 생각하고 코드를 작성했는데,
항상 예외가 있다는 걸 염두에 두어야 한다는 것을 깨달았습니다.