[Array] 배열 회전하기

2025. 1. 7. 21:49·algorithm

1차원 배열 회전하기


/**
 * Rotate 1-dimensional Array
 * Time complexity:  O(n)
 * Space complexity: O(1)
 * */
public class Rotate {
    private static final Logger logger = Logger.getLogger(Rotate.class.getName());

    public static void main(String[] args) {
        int[] nums = {1, 2, 3, 4, 5, 6, 7, 8, 9};
        int len = nums.length;
        int k = 12 % len;

        /* rotate right */
        rotate(nums, 0, k-1, len-1);
        logger.info("rotated right: " + Arrays.toString(nums));

        /* rotate left */
        rotate(nums, 0, len-k-1, len-1);
        logger.info("rotated left: "  + Arrays.toString(nums));
    }

    private static void rotate(int[] nums, int left, int mid, int right) {
        reverse(nums, left, right);
        reverse(nums, left, mid);
        reverse(nums, mid+1, right);
    }

    private static void reverse(int[] nums, int left, int right) {
        while(right > left) {
            int tmp = nums[right];
            nums[right--] = nums[left];
            nums[left++] = tmp;
        }
    }
}

1차원 배열 회전 결과

 

저작자표시 (새창열림)
'algorithm' 카테고리의 다른 글
  • [Sort] 합병 정렬
  • [Algorithm] Kruskal - 크루스칼
  • [Algorithm] Union-Find
  • [Programmers] 미로 탈출 자바
Jisung Jung
Jisung Jung
Jisung Jung의 기술블로그
  • Jisung Jung
    Jisung Jung의 기술블로그
    Jisung Jung
  • 전체
    오늘
    어제
    • 분류 전체보기 (65)
      • spring, jpa (14)
      • java (7)
      • go (3)
      • kafka (3)
      • network (1)
      • algorithm (11)
      • data structure (3)
      • database, sql (7)
      • infra (7)
      • bootcamp (6)
      • git (3)
  • 블로그 메뉴

    • 홈
    • 방명록
    • 글쓰기
  • 링크

  • 공지사항

  • 인기 글

  • 태그

  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.4
Jisung Jung
[Array] 배열 회전하기
상단으로

티스토리툴바