[백준/JAVA] 1차원 배열 - 10818번 최소, 최대

신승현·2022년 8월 8일
0

더 좋은 문제 풀이가 있거나 궁금하신 점이 있다면 편하게 댓글 남겨주세요!


📝 문제


10818번 최소, 최대


🤷‍♂️ 접근 방법


이번 문제는 기존 입출력에서 풀었던 문제와 알고리즘이 동일하다. 다만 차이가 있다면 정수를 담는 자료형이 배열이라는 것이다. for문을 통해 반복할 횟수를 입력받고 그 수만큼 배열에 정수를 입력해보자.

	int N = sc.nextInt();
	int arr[] = new int[N];
    
	for(int i = 0; i < N; i++){
		arr[i] = sc.nextInt();
	}

다음으로 배열에서 가장 큰 정수와 작은 정수를 출력하는 방법이다. 이 문제를 해결하는 방법은 2가지가 있다. 하나는 Arrays 클래스의 sort() 메소드를 이용하는 방식이고, 하나는 직접 배열을 for문을 돌면서 작은 수와 큰수를 비교하는 방법이다.

먼저 for 문을 직접 확인하며 작은 수와 큰수를 N 회 반복하는 방법에 대해 알아보자.

	for(int i = 0 ; i< N; i++){
		if(arr[i] < min) min = arr[i];
		if(arr[i] > max) max = arr[i];
	}

📌 Arrays.sort()

다음으로는 Arrays 클래스의 sort() 메소드 를 이용하는 방식을 알아보자.
java.util.Arrays 유틸리티 클래스는 배열(Array)을 정렬, 복제, List로 변환의 작업을 쉽게 처리 할 수 있게 도와준다. 해당 클래스의 sort() 메서드를 사용하면 쉽게 오름차순 정렬이 가능하다.
단, sort()메소드를 사용하기 위해서는 Arrays 유틸리티 클래스를 import 해주어야 한다.

	import java.util.Arrays;
    

✍ 풀이


방법 1

import java.util.Scanner;
import java.util.Arrays;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int arr[] = new int[N];

        for(int i = 0; i < N; i++){
            arr[i] = sc.nextInt();
        }
		
        //오름차순 정렬
        Arrays.sort(arr);
        System.out.print(arr[0] + " " + arr[N - 1]);
    }
}

방법 2

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int arr[] = new int[N];

        for(int i = 0; i < N; i++){
            arr[i] = sc.nextInt();
        }
        
        int min = arr[0];
        int max = arr[0];

        for(int i = 0 ; i< N; i++){
            if(arr[i] < min) min = arr[i];
            if(arr[i] > max) max = arr[i];
        }

        System.out.print( min + " " + max);

    }
}
profile
I have not failed. I've just found 10,000 ways that won't work. - Thomas A. Edison

0개의 댓글