문제 풀이/백준

[백준]10818번. 최소, 최대(JAVA)

27200 2024. 4. 11. 22:30

https://www.acmicpc.net/problem/10818


문제


풀이

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st;

        int n = Integer.parseInt(br.readLine());

        int min = 1000001;
        int max = -1000001;

        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < n; i++) {
            int temp = Integer.parseInt(st.nextToken());
            if(temp < min) {
                min = temp;
            }
            if(temp > max) {
                max = temp;
            }
        }

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

 

정수 배열에 저장한 뒤에 Arrays.sort()를 써도 되겠지만 직접 처리해봤다.

 

문제 자체는 어렵지 않기 때문에 포인트만 집어보자.

 

이 전의 좀 더 높은 수준의 문제에서 봤었던 포인트인데 정수 범위가 -1000000~1000000인 것에 주목하자.

그렇기 때문에 min 값의 초기값을 1000001로 잡고, max의 초기값을 -1000001로 잡는다.

 

0으로 잡거나 하면 안 된다. min을 최대, max를 최소로 잡는 이유는 이렇게 해야 비교했을 때 제대로 된 값이 들어갈 수있기 때문이다.