본문 바로가기
자바 (JAVA)

📚 자바 배열 연습문제

by demianpark127 2025. 1. 7.
SMALL

📌 자바로 배열에서 최대값 구하기

배열에서 최대값을 구하는 방법은 매우 간단합니다. 아래는 정수 배열에서 최대값을 찾는 자바 프로그램입니다.


 1. 기본 코드 예제

import java.util.Scanner;

public class MaxValueInArray {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);

        // 배열의 크기 입력받기
        System.out.print("배열의 크기를 입력하세요: ");
        int size = scanner.nextInt();
        int[] array = new int[size];

        // 배열 값 입력받기
        System.out.println(size + "개의 정수를 입력하세요:");
        for (int i = 0; i < size; i++) {
            System.out.print((i + 1) + "번째 값: ");
            array[i] = scanner.nextInt();
        }

        // 최대값 찾기
        int max = array[0]; // 첫 번째 요소로 초기화
        for (int i = 1; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
            }
        }

        // 결과 출력
        System.out.println("배열의 최대값: " + max);

        scanner.close();
    }
}

2. 코드 설명

  1. 배열 크기 입력:
    • 사용자로부터 배열의 크기를 입력받습니다.
  2. 배열 요소 입력:
    • 반복문을 사용해 배열에 정수를 입력받습니다.
  3. 최대값 찾기:
    • 배열의 첫 번째 요소를 최대값으로 초기화합니다.
    • for 반복문을 사용해 배열을 순회하며 각 요소와 최대값을 비교합니다.
    • 더 큰 값이 발견되면 max 변수를 업데이트합니다.
  4. 최대값 출력:
    • 최종적으로 최대값을 출력합니다.

3. 실행 예시

배열의 크기를 입력하세요: 5
5개의 정수를 입력하세요:
1번째 값: 12
2번째 값: 45
3번째 값: 23
4번째 값: 67
5번째 값: 34
배열의 최대값: 67



4. 배열 초기화 버전 (정적 배열)

배열을 코드에서 직접 초기화할 수도 있습니다.

public class MaxValueInArray {
    public static void main(String[] args) {
        int[] array = {12, 45, 23, 67, 34};
        int max = array[0];

        for (int i = 1; i < array.length; i++) {
            if (array[i] > max) {
                max = array[i];
            }
        }

        System.out.println("배열의 최대값: " + max);
    }
}

5. 스트림을 사용한 최대값 찾기 (Java 8 이상)

Java 8부터는 IntStream을 사용해 배열의 최대값을 간단하게 구할 수 있습니다.

import java.util.Arrays;

public class MaxValueInArray {
    public static void main(String[] args) {
        int[] array = {12, 45, 23, 67, 34};
        int max = Arrays.stream(array).max().getAsInt();

        System.out.println("배열의 최대값: " + max);
    }
}

설명:

  • Arrays.stream(array) → 배열을 스트림으로 변환합니다.
  • .max() → 최대값을 찾습니다.
  • .getAsInt() → OptionalInt를 정수로 변환합니다.

6. 주의사항

  1. 배열이 비어있는 경우 예외가 발생할 수 있으므로 비어있는 배열을 처리하는 로직이 필요합니다.
  2. 사용자 입력값 검증을 통해 오류를 방지해야 합니다.

📚 자바 배열 연습문제 10개

 

1. 배열의 합 구하기

📌 문제:

정수 배열이 주어졌을 때, 배열의 모든 요소의 합을 구하세요.

💻 풀이 코드:

public class ArraySum {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        int sum = 0;

        for (int i = 0; i < array.length; i++) {
            sum += array[i];
        }

        System.out.println("배열의 합: " + sum);
    }
}

2. 배열의 최대값과 최소값 찾기

📌 문제:

정수 배열에서 최대값과 최소값을 찾으세요.

public class MaxMinArray {
    public static void main(String[] args) {
        int[] array = {10, 5, 20, 8, 15};
        int max = array[0];
        int min = array[0];

        for (int i = 1; i < array.length; i++) {
            if (array[i] > max) max = array[i];
            if (array[i] < min) min = array[i];
        }

        System.out.println("최대값: " + max);
        System.out.println("최소값: " + min);
    }
}
최대값: 20
최소값: 5

3. 배열 요소 뒤집기

📌 문제:

배열의 요소를 반대로 뒤집어 출력하세요.

import java.util.Arrays;

public class ReverseArray {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        int length = array.length;

        for (int i = 0; i < length / 2; i++) {
            int temp = array[i];
            array[i] = array[length - i - 1];
            array[length - i - 1] = temp;
        }

        System.out.println("뒤집힌 배열: " + Arrays.toString(array));
    }
}
뒤집힌 배열: [5, 4, 3, 2, 1]

4. 짝수와 홀수 분리하기

📌 문제:

배열에서 짝수와 홀수를 분리하여 각각 출력하세요.

public class EvenOddArray {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5, 6};

        System.out.print("짝수: ");
        for (int i : array) {
            if (i % 2 == 0) System.out.print(i + " ");
        }

        System.out.print("\n홀수: ");
        for (int i : array) {
            if (i % 2 != 0) System.out.print(i + " ");
        }
    }
}
짝수: 2 4 6 
홀수: 1 3 5

5. 배열 요소 중복 제거

📌 문제:

배열에서 중복된 요소를 제거하고 고유한 값만 출력하세요.

import java.util.HashSet;

public class RemoveDuplicates {
    public static void main(String[] args) {
        int[] array = {1, 2, 2, 3, 4, 4, 5};
        HashSet<Integer> set = new HashSet<>();

        for (int i : array) {
            set.add(i);
        }

        System.out.println("중복 제거: " + set);
    }
}
중복 제거: [1, 2, 3, 4, 5]

6. 배열의 평균값 구하기

📌 문제:

배열의 평균값을 계산하세요.

public class ArrayAverage {
    public static void main(String[] args) {
        int[] array = {10, 20, 30, 40, 50};
        int sum = 0;

        for (int i : array) {
            sum += i;
        }

        double average = (double) sum / array.length;
        System.out.println("평균: " + average);
    }
}
평균: 30.0

7. 배열에서 특정 값 찾기

📌 문제:

입력한 값이 배열에 있는지 확인하고 인덱스를 출력하세요.

public class FindValue {
    public static void main(String[] args) {
        int[] array = {5, 8, 12, 7, 19};
        int searchValue = 7;
        boolean found = false;

        for (int i = 0; i < array.length; i++) {
            if (array[i] == searchValue) {
                System.out.println(searchValue + "은 " + i + "번째 인덱스에 있습니다.");
                found = true;
                break;
            }
        }

        if (!found) System.out.println("값을 찾을 수 없습니다.");
    }
}
7은 3번째 인덱스에 있습니다.

 

 

8. 2차원 배열의 합 구하기

public class TwoDArraySum {
    public static void main(String[] args) {
        int[][] array = {{1, 2}, {3, 4}, {5, 6}};
        int sum = 0;

        for (int[] row : array) {
            for (int i : row) {
                sum += i;
            }
        }

        System.out.println("2차원 배열의 합: " + sum);
    }
}
2차원 배열의 합: 21

 

 

9. 배열 정렬

import java.util.Arrays;

public class SortArray {
    public static void main(String[] args) {
        int[] array = {3, 1, 4, 1, 5, 9};
        Arrays.sort(array);
        System.out.println("오름차순: " + Arrays.toString(array));
    }
}

 

오름차순: [1, 1, 3, 4, 5, 9]

 

10. 배열 회전

public class RotateArray {
    public static void main(String[] args) {
        int[] array = {1, 2, 3, 4, 5};
        int last = array[array.length - 1];

        for (int i = array.length - 1; i > 0; i--) {
            array[i] = array[i - 1];
        }
        array[0] = last;

        System.out.println("회전된 배열: " + java.util.Arrays.toString(array));
    }
}
회전된 배열: [5, 1, 2, 3, 4]
LIST