예외사항을 생각해야 한다.
Empty array, input 배열의 크기보다 rotation 횟수가 더 클때, K가 0일 때 등을 추가 테스트 케이스로 넣어준다
Additional Test Case
([], 3)
([1,2,3,4], 5)
([1,2,3,4], 0)
Code
class Solution {
public int[] solution(int[] A, int K) {
int[] res = new int[A.length];
// K 값이 A 배열의 길이보다 클 때 중복해서 rotation 하는 것이므로 나머지를 대입
if (A.length != 0 && K > A.length) {
K = K % A.length;
}
// A배열의 크기가 K와 동일하면 로테이션 필요 없음
// A배열의 크기가 0이거나 K가 0이라면 로테이션 필요 없음
if (K == A.length || A.length == 0 || K==0) {
res = A;
} else {
for (int i = 0; i < K; i++) {
res[i] = A[(A.length - K + i)];
}
for (int i = K; i < A.length; i++) {
res[i] = A[i - K];
}
}
return res;
}
}
'Algorithms' 카테고리의 다른 글
[Codility] PermMissingElem (0) | 2022.02.28 |
---|---|
[Codility] OddOccurrencesInArray (0) | 2022.02.26 |
[Codility] BinaryGap (0) | 2022.02.22 |
[프로그래머스] 모의고사 (0) | 2022.02.20 |
[프로그래머스] 완주하지 못한 선수 (0) | 2022.02.13 |