[Algorithm] 백준 10818

1 minute read

1.png


Array를 사용하지 않고 풀었을 때

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

public class Main {
	public static void main(String[] args){
		Scanner sc = new Scanner(System.in);
		int num = sc.nextInt();
		int[] arr = new int[num];

		int max = 0;
		int min = 0;

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

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

		System.out.printf("%d %d", min,max);
	}

}

배열의 크기를 입력받고. 해당 배열의 크기만큼 반복문을 돌려 배열에 값을 입력받는다.

그 후 배열의 값들이 max와 min값의 조건에 맞게 다시 한번 반복문이 돌아가며, 값을 비교한다.

하지만 위의 코드는 오답으로 처리가 되었다.


Array를 사용하고 풀었을 때

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

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

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

        // 배열의 길이만큼 돌면서 i에 입력값을 받는다
        for (int i=0; i<arr.length; i++) {
        	arr[i] = sc.nextInt();
        }

        // sort를 사용해 배열을 정렬한다
        Arrays.sort(arr);
        // 정렬된 배열의 가장 작은 수
        // 0번 인덱스의 것 = min 값
        // 배열길이 -1 인덱스의 것 = max 값
        System.out.println(arr[0] + " " + arr[num - 1]);
	}

}

맨 첫줄에 N을 입력받아 해당 크기의 배열을 선언한 뒤 arr 배열 원소에 각각 입력받은 값을 넣어주는 방법이다.

Arrays.sort() 메소드를 활용한다.

이 메소드는 배열에 저장된 원소 값을 오름차순으로 정렬해주는 메소드다.

이 메소드를 활용하여 정렬하면 최솟값은 배열의 첫번째 원소(index 0)에, 최댓값은 배열의 마지막 원소(arr.length-1)에 있을테니 이를 출력하면 된다.

Categories:

Updated:

Leave a comment