문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
입력 | 출력 |
5
20 10 35 30 7 | 7 35
|
답
◽Scanner
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int[] a = new int[n];
for (int c = 0; c < n; c++) {
int number = sc.nextInt();
a[c] = number;
}
int max = Arrays.stream(a).max().getAsInt();
int min = Arrays.stream(a).min().getAsInt();
System.out.println(min + " " + max);
sc.close();
}
}
◽ BufferedReader / BufferedWriter
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
StringTokenizer st = new StringTokenizer(br.readLine(), " "); // n값 처리
int n = Integer.parseInt(st.nextToken()); // 문자열로 받기 때문에 int형으로 형변환
int[] a = new int[n]; //
st = new StringTokenizer(br.readLine(), " "); // 수열 a에 입력값 처리
for (int i = 0; i < a.length; i++) {
a[i] = Integer.parseInt(st.nextToken());
}
int max = Arrays.stream(a).max().getAsInt();
int min = Arrays.stream(a).min().getAsInt();
bw.write(min + " " + max);
br.close();
bw.flush();
bw.close();
}
}
Share article