Algorithm

[java] Rotate Array

KOOCCI 2022. 6. 24. 23:51

[참고문제] : https://leetcode.com/problems/rotate-array/

 

Rotate Array - LeetCode

Level up your coding skills and quickly land a job. This is the best place to expand your knowledge and get prepared for your next interview.

leetcode.com

문제 풀이

생각의 흐름 - Circular Linked List 다.

보자마자, Circular Linked List로 구현하면 될 것이란 건 알았다. 다만, 자료구조를 만드는게 목표가 아니니 list로 처리하기로 함.

 

생각의 흐름 - 어디부터 끊어지는 지 보자.

k는 받지만, 모듈러 연산은 해야겠다고 판단.

 

생각의 흐름 - 끊어지는 부분 앞을 그냥 뒤에 추가하고, 거기부터 읽어내자.

List에 넣어두고, 앞부분을 그냥 반복해서 넣어주고, 읽을 때 끊어졌던 부분 부터 읽자고 판단.

 

class Solution {
    public void rotate(int[] nums, int k) {
        k %= nums.length;
        List<Integer> arr = Arrays.stream(nums).boxed().collect(Collectors.toList());
        List<Integer> arr2 = arr.subList(nums.length - k, nums.length);
        arr2.addAll(arr.subList(0, nums.length - k));
        for(int i = 0; i < nums.length; i++) {
            nums[i] = arr2.get(i);
        }
    }
}

'Algorithm' 카테고리의 다른 글

[java] Remove Nth Node From End of List  (0) 2022.07.02
[java] Container With Most Water  (0) 2022.07.02
[java] Median of Two Sorted Arrays  (0) 2022.06.23
[java] Longest Substring Without Repeating Characters  (0) 2022.06.23
[java] jump game 2  (0) 2022.06.22