본문 바로가기
Programming/Algorithm

[백준] 10818번 : 최소,최대 (Java)

by 안녕주 2021. 7. 11.

문제

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

입력

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

출력

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


코드

import java.util.*;
public class Main{
    public static void main(String[] args){
        Scanner sc = new Scanner(System.in);
        int N = sc.nextInt();
        int[] arr = new int[N];
        int min_arr,max_arr;
        
        for (int i = 0; i < N; i++){
            arr[i] = sc.nextInt();
        }
        min_arr = arr[0];
        max_arr = arr[0];
        for (int j = 0; j < N; j++){
            if (min_arr > arr[j]){
                min_arr = arr[j];
            }
            if (max_arr < arr[j]){
                max_arr = arr[j];
            }
        }
        System.out.println(min_arr+" "+max_arr);

        sc.close();
    }   
}

풀이

반복문을 두개 사용해서 문제를 풀었다! 뭔가 코드를 더 짧게 할 수 있을 것 같은데, 일단은 그냥 생각나는데로 문제를 풀었다. 

min_arr, max_arr 변수를 사용하고, if문을 통해 해당 조건일 경우 변수들의 값을 갱신하는 방법으로 구현을 했다.

큰 어려움은 없었던 문제.

댓글