티스토리 뷰

배열 A와 int K를 입력 받아서, K번만큼 오른쪽으로 로테이션한 결과를 반환하도록 구현하는 문제.

덱을 사용하여 K번만큼 뒤에서 빼서 앞으로 넣고 이런 식으로 로테이션함.

import java.util.ArrayDeque;
import java.util.Arrays;
import java.util.Deque;

// you can write to stdout for debugging purposes, e.g.
// System.out.println("this is a debug message");

class Solution {
    public int[] solution(int[] A, int K) {
        // 빈 배열 예외처리
        if (A.length == 0) {
            return A;
        }
        int[] result = new int[A.length];
        Deque<Integer> deque = new ArrayDeque<>();
        for (int a : A) {
            deque.add(a);
        }
        for (int i = 0; i < K; i++) {
            deque.addFirst(deque.pollLast());
        }
        int length = deque.size();
        for (int i = 0; i < length; i++) {
            result[i] = deque.poll();
        }
        return result;
    }
}

 

댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/09   »
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
29 30
글 보관함