N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
import java.util.Scanner;
import java.util.Arrays;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int N = sc.nextInt();
int[] arr = new int[N];
for(int i = 0; i < N; i++) {
arr[i] = sc.nextInt();
}
Arrays.sort(arr);
System.out.println(arr[0] + " " arr[N - 1]);
}
}
기본 Scanner
을 이용한 방식이다.
배열 크기를 입력 받고 반복문을 통해 배열 크기만큼 값을 입력해 넣어주는 방법이다.
Arrays.sort()
메소드를 사용하면
최솟값, 최댓값을 쉽게 구할 수가 있다.
Arrays.sort
메소드는 배열에 저장된 값을 오름차순으로 정렬해준다.
이 메소드를 통해 정렬을 하면 최솟값은 배열 첫번째 값(index 0), 최댓값은 배열의 마지막 값(N - 1)에 있게 된다.
import java.util.Arrays;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.IOException;
import java.util.StringTokeinzer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine(), " ");
int Index = 0;
int[] arr = new Int[N];
while(st.hasMoreToken()) {
arr[index] = Integer.parseInt(st.nextToken());
index++;
}
Arrays.sort(arr);
System.out.println(arr[0] + " " + arr[N - 1]);
}
}
BufferedReader
을 이용한 방식이다.
입력 값이 문자열로 반환하기 때문에 Integer.parseInt()
로 int형으로 변환시켜준다.
st.hasMoreToken
는 StringTokenizer에 토큰이 남아있으면 true, 비어있으면 false를 반환한다.
그리고 방법 1처럼 Arrays.sort()
을 통해 오름차순 정렬하고
첫번째와 마지막 값을 출력해주면 된다.