[백준 알고리즘] 10818번 : 최소, 최대

이도은·2021년 12월 17일

문제

N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.

입력

첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.

출력

첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.

코드

import java.util.Scanner;

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

        int N = scanner.nextInt();  //정수의 개수 입력.

        int[] num = new int[N];     //N개의 정수를 저장할 배열 생성.

        for (int i = 0; i < N; i++) {
            num[i] = scanner.nextInt(); //각각의 정수를 배열에 입력.
        }

        int max = -1000000;
        int min = 1000000;

        for (int i = 0; i < num.length; i++) {
            if (num[i] > max)   //최댓값 구하기
                max = num[i];

            if (num[i] < min)   //최솟값 구하기
                min = num[i];
        }

        System.out.println(min + " " + max);    //최솟값, 최댓값 출력.
    }
}

풀이 및 느낀점

입력받은 정수들을 차례대로 비교해주면서 조건이 성립되면 max와 min의 값을 변경해주었다. 정수들을 배열에 저장하고 배열의 위치 순서대로 값을 비교해주는 방식으로 문제를 해결하였다.

참고자료

0개의 댓글