HoonK212 GitHub_Blog

[오늘의 백준] 6번째

“10818번”

단계별로 풀어보기

  • 1차원 배열
    • 최소, 최대

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

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

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


풀이

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

public class Main {
	public static void main(String[] args) throws IOException {

		BufferedReader in = new BufferedReader(new InputStreamReader(System.in));

		// 정수의 개수 N 값을 담을 변수 len 생성
		int len = Integer.parseInt(in.readLine());

		// len 의 크기를 가지는 배열 arr 생성
		int[] arr = new int[len];

		// 문자열을 구분자로 나누는 StringTokenizer 객체를 readLine()메소드를 활용하여 생성
		StringTokenizer st = new StringTokenizer(in.readLine());

		// N개의 정수를 배열 arr에 담기 위해 for문 사용
		for (int i=0; i<len; i++) {
			arr[i] = Integer.parseInt(st.nextToken());
		}

		// 배열 arr을 오름차순으로 정렬
		Arrays.sort(arr);

		// 최소값 arr[0]과 최대값 arr[len-1]을 출력
		System.out.println(arr[0] + " " + arr[len-1]);
	}
}