(백준 제10818호) (순서) 최소, 최대

문제

N 정수를 얻습니다. 이때 최소값과 최대값을 구하는 프로그램을 작성하세요.

기입

정수의 개수 N(1 ≤ N ≤ 1,000,000)은 첫 번째 줄에 지정됩니다. 두 번째 줄에는 공백으로 구분된 N개의 정수가 포함됩니다. 모든 정수는 -1,000,000보다 크거나 같고 1,000,000보다 작거나 같은 정수입니다.

누르다

공백으로 구분된 첫 번째 줄에 주어진 N 정수의 최소값과 최대값을 반환합니다.


내 솔루션

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.StringTokenizer;

public class Main {
    public static void main(String() args) throws Exception {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int n = Integer.parseInt(br.readLine());
        int() numArr = new int(n);

        StringTokenizer st = new StringTokenizer(br.readLine());
        for (int i = 0; i < n; i++) {
            numArr(i) = Integer.parseInt(st.nextToken());
        }

        int min = numArr(0);
        int max = numArr(0);
        for (int num : numArr) {
            if (num < min) {
                min = num;
            } else if (num > max) {
                max = num;
            }
        }

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

용해 과정

  • 입력 값을 받은 후 첫 번째 줄의 입력 값은 int 변수이고 두 번째 줄의 입력 값은 for 문이 포함된 int 배열입니다.
  • 그런 다음 최소값과 최대값을 모두 배열의 첫 번째 값으로 설정하고 int 배열의 모든 값을 검사하여 최소값보다 작으면 변경하고 최대값보다 크면 변경합니다. .
  • 시간 복잡도: O(n)