[JAVA]백준 알고리즘/단계별 - 1차원 배열

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

코린이J 2023. 1. 6. 11:11
728x90

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

 

10818번: 최소, 최대

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

www.acmicpc.net

문제

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

 

풀이

이 문제도 백준 알고리즘 10871번 : X보다 작은 수 문제와 같이 1차원 배열에 분류되어 있는 문제 이긴 하나, 배열을 사용하지 않고도 해결할 수 있다.

정수를 입력받을 때마다 최댓값과 최솟값을 최신화하여 출력하면 된다.

 

코드

BufferedReader 클래스 StringBuilder 클래스를 이용한 코드

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

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

        int N = Integer.parseInt(br.readLine());
        int max = Integer.MIN_VALUE;
        int min = Integer.MAX_VALUE;

        st = new StringTokenizer(br.readLine());
        for(int i = 0; i < N; i++) {
            int num = Integer.parseInt(st.nextToken());
            if(num > max) max = num;
            if(num < min) min = num;
        }
        sb.append(min).append(" ").append(max);
        System.out.println(sb);
    }
}

틀린 부분이 있다면 정정해주시면 감사하겠습니다.
궁금한 부분이 있거나, 다른 아이디어가 있으시면 자유롭게 댓글 남겨주세요!

728x90