문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
예제 입력 1 복사
5
20 10 35 30 7
예제 출력 1 복사
7 35
1차 시도
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);
int max=arr[0];;
int min=arr[0]; // 최솟값 최대값 선언
for(int i=0; i<N; i++){
if(max<arr[i])
max = arr[i];
else if(min>=arr[i])
min = arr[i];
}
System.out.printf("%d %d", min, max);
}
}
Arrays.sort로 배열을 정리했는데, max, min을 구하는 반복문이 불필요해서 삭제
2차 시도
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);
int max=arr[N-1];;
int min=arr[0]; // 최솟값 최대값 선언
System.out.printf("%d %d", min, max);
}
}
다른 방법 : java에서는 Math클래스가 있어서 Math.max, Math.min으로 출력하는 방법도 있다.
'백준 > 브론즈 탈출하기' 카테고리의 다른 글
[Java] 백준 2562번 : 최댓값 (0) | 2023.10.31 |
---|---|
[Java] 백준 11720번 : 숫자의 합 (0) | 2023.10.30 |
[Java] 백준 5597번 : 과제 안내신 분..? (0) | 2023.10.22 |
[Java] 백준 10807번 : 개수 세기 (0) | 2023.10.14 |
[Java] 백준 10951번 A+B-4 : 입력 대기 hasNextInt() (1) | 2023.10.13 |