본문 바로가기
프론트엔드/알고리즘

자바 Java | 알고리즘 | 배열

by YUNI Heo 2024. 3. 6.
반응형

 

⭕ 자바 Java | 알고리즘 | 배열

배열은 동일한 자료형의 데이터를 일렬로 나열한 자료구조입니다. 각 요소는 인덱스를 통해 접근할 수 있습니다. 배열은 프로그래밍에서 매우 일반적으로 사용되며, 메모리 상에서 연속된 공간에 요소를 저장합니다.

 

➡️ 배열의 특징

  1. 인덱스를 사용하여 값에 바로 접근할 수 있다: 배열은 각 요소마다 고유한 인덱스가 있으므로, 해당 인덱스를 사용하여 배열 내의 요소에 직접 접근할 수 있습니다.
  2. 새로운 값을 삽입하거나 특정 인덱스에 있는 값을 삭제하기 어렵다: 배열의 특정 위치에 새로운 값을 삽입하거나 삭제하려면, 해당 위치 이후의 모든 요소를 이동시켜야 합니다. 이는 성능상의 문제를 유발할 수 있습니다.
  3. 배열의 크기는 선언할 때 지정할 수 있으며, 변경할 수 없다: 배열을 선언할 때 크기를 지정하고, 이 크기는 변경할 수 없습니다. 필요한 경우 크기를 조정하려면 새로운 배열을 만들고 데이터를 복사해야 합니다.
  4. 구조가 간단하므로 코딩테스트에서 많이 사용한다: 배열은 간단하고 직관적인 자료구조이므로, 프로그래밍 문제 해결에 자주 활용됩니다. 특히 코딩 테스트에서 배열과 관련된 문제들이 자주 출제됩니다.

 

➡️ 배열의 활용

  • 데이터 집합의 순서를 유지해야 할 때
  • 동일한 유형의 데이터를 일괄 처리해야 할 때
  • 특정 위치에 있는 데이터에 빠르게 접근해야 할 때

 

➡️ 배열의 한계

  • 크기가 고정되어 있어 크기를 동적으로 조정하기 어렵다.
  • 요소의 삽입, 삭제에 대한 비용이 높다.
  • 배열의 연속된 메모리 공간에 데이터를 저장하므로, 연속적인 메모리 공간을 할당하는데 한계가 있다.

 

➡️ 배열 요소의 합 구하기

주어진 배열의 모든 요소를 더하여 합계를 계산하고 출력하는 자바 프로그램입니다. 배열의 각 요소를 반복하여 합계를 구하고, 그 값을 반환합니다. 반환된 합계는 메인 함수에서 출력되어 콘솔에 표시됩니다.

public class ArraySum {
    public static int sum(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return sum;
    }

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        System.out.println("배열 요소의 합: " + sum(arr));
    }
}



➡️ 배열 요소의 최댓값 구하기

배열에서 최댓값을 찾아서 반환하는 자바 프로그램입니다. 배열의 각 요소를 반복하면서 현재까지의 최댓값과 비교하여 더 큰 값을 최댓값으로 갱신합니다. 최종적으로 최댓값을 반환하고, 이를 메인 함수에서 출력하여 콘솔에 표시합니다.

public class MaxArray {
    public static int findMax(int[] arr) {
        int max = Integer.MIN_VALUE;
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] > max) {
                max = arr[i];
            }
        }
        return max;
    }

    public static void main(String[] args) {
        int[] arr = {5, 9, 1, 4, 7};
        System.out.println("배열 요소의 최댓값: " + findMax(arr));
    }
}

 

➡️ 배열 요소의 평균값 구하기

배열의 요소들의 평균값을 계산하여 반환하는 자바 프로그램입니다. 배열의 모든 요소를 반복하여 합계를 구한 후 배열의 길이로 나누어 평균을 계산합니다. 이 평균값은 메인 함수에서 출력되어 콘솔에 표시됩니다.

public class AverageArray {
    public static double findAverage(int[] arr) {
        int sum = 0;
        for (int i = 0; i < arr.length; i++) {
            sum += arr[i];
        }
        return (double) sum / arr.length;
    }

    public static void main(String[] args) {
        int[] arr = {3, 6, 9, 12, 15};
        System.out.println("배열 요소의 평균값: " + findAverage(arr));
    }
}

 

➡️ 배열 요소의 역순으로 출력하기

주어진 배열의 요소들을 역순으로 출력하는 자바 프로그램입니다. 배열의 마지막 요소부터 처음 요소까지 반복하여 출력하면서, 각 요소 뒤에 공백을 추가합니다. 이렇게 출력된 요소들은 메인 함수에서 "배열 요소 역순 출력:"과 함께 출력되어 콘솔에 표시됩니다.

public class ReverseArray {
    public static void reverse(int[] arr) {
        for (int i = arr.length - 1; i >= 0; i--) {
            System.out.print(arr[i] + " ");
        }
    }

    public static void main(String[] args) {
        int[] arr = {1, 2, 3, 4, 5};
        System.out.println("배열 요소 역순 출력:");
        reverse(arr);
    }
}

 

➡️ 배열 요소의 특정 값 찾기

주어진 배열에서 특정한 값의 인덱스를 찾는 자바 프로그램입니다. 배열의 모든 요소를 반복하면서, 각 요소가 찾고자 하는 값과 일치하는지 확인합니다. 만약 일치하는 값이 발견되면 해당 요소의 인덱스를 반환하고, 일치하는 값이 없는 경우에는 -1을 반환합니다. 이 반환된 결과는 메인 함수에서 해당 값이 배열 내에서 찾아졌는지 여부에 따라 적절한 메시지와 함께 출력됩니다.

public class FindElement {
    public static int find(int[] arr, int target) {
        for (int i = 0; i < arr.length; i++) {
            if (arr[i] == target) {
                return i;
            }
        }
        return -1; // 찾는 값이 배열에 없는 경우
    }

    public static void main(String[] args) {
        int[] arr = {3, 6, 9, 12, 15};
        int target = 9;
        int index = find(arr, target);
        if (index != -1) {
            System.out.println("배열에서 " + target + "의 인덱스: " + index);
        } else {
            System.out.println("배열에서 " + target + "을(를) 찾을 수 없습니다.");
        }
    }
}
반응형