본문 바로가기

Codility/JAVA

Cyclic Rotation

두 가지 방법으로 풀 수 있다. (deque(덱), 배열을 하나씩 뒤로 밀고 맨 앞으로 맨 뒤의 요소를 삽입하는 것( O(k*n))

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
 
class Solution {
    public int[] solution(int[] A, int k) {
        // write your code in Java SE 8
        Deque<Integer> dq = new ArrayDeque<Integer>();
        
        for (int i = 0; i < A.length; i++) dq.add(A[i]);
        
        while(k > 0) {
            if (dq.size() > 0) {
                dq.addFirst(dq.peekLast());
                dq.pollLast();
            }
            k--;
        }
        
        Iterator it = dq.iterator();
        
        int idx = 0;
        while(it.hasNext()) {
            A[idx++= (int)it.next();
        }
        return A;
    }
}
http://colorscripter.com/info#e" target="_blank" style="color:#4f4f4ftext-decoration:none">Colored by Color Scripter

'Codility > JAVA' 카테고리의 다른 글

FlogJump  (0) 2020.02.16
TapeEquilibrium  (0) 2020.02.15
OddOccurencesInArray  (0) 2020.02.15
Binary Gap  (0) 2020.02.15