N개의 정수로 구성된 배열 A가 주어집니다. 배열의 회전은 각 요소가 한 인덱스씩 오른쪽으로 이동하고 배열의 마지막 요소가 첫 번째 위치로 이동됨을 의미합니다. 예를 들어, 배열 A = [3, 8, 9, 7, 6]의 회전은 [6, 3, 8, 9, 7]입니다(요소는 한 인덱스만큼 오른쪽으로 이동하고 6은 첫 번째 위치로 이동합니다).
목표는 배열 AK 시간을 회전하는 것입니다. 즉, A의 각 요소는 오른쪽으로 K번 이동합니다.
함수 작성:
class Solution { public int[] solution(int[] A, int K); }
N개의 정수와 정수 K로 구성된 배열 A가 주어지면 K번 회전된 배열 A를 반환합니다.
예를 들어, 주어진
A = [3, 8, 9, 7, 6]
케이 = 3
함수는 [9, 7, 6, 3, 8]을 반환해야 합니다. 세 번의 회전이 이루어졌습니다.
[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]
다른 예로 주어진
A = [0, 0, 0]
케이 = 1
함수는 [0, 0, 0]을 반환해야 합니다.
주어진
A = [1, 2, 3, 4]
케이 = 4
함수는 [1, 2, 3, 4]를 반환해야 합니다.
다음을 가정합니다.
N 및 K는 범위 [ 0 .. 100 ] 내의 정수이고;
배열 A의 각 요소는 [ −1,000 .. 1,000 ] 범위 내의 정수입니다 .
솔루션에서 정확성 에 중점을 둡니다 . 솔루션의 성능은 평가의 초점이 아닙니다.
// you can write to stdout for debugging purposes, e.g.
// console.log('this is a debug message');
function solution(A, K) {
for(i=0; i<K; i++) {
A.unshift(A.pop())
}
return A
}
전에 회전식으로 풀어봤던 문제기에 짧은 시간에 풀었었다.
하지만 한 가지 이해가 안 가는 건 문제에서도 공백의 배열이 주어졌을 땐 어떤 ㄱ밧을 리턴해야 하는지 나와있지 않은데.. 어떻게 처리해야할지 모르겠다.
function solution(A, K) {
for (i=0; i<K; i++){
A.unshift(A.pop());
}
return A[0] != undefined ? A : [];
}
만약에 0번 인덱스가 undefined라면 빈 배열을 return하도록 삼항연산자를 사용하면 됨