최소, 최대
문제
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
처음에 난 이런 식으로 풀었다.
min과 max 변수를 두고 배열의 값을 하나하나 비교하는 식으로..
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int cnt = sc.nextInt();
int[] nums = new int[cnt];
for (int i = 0; i < cnt; i++) {
nums[i] = sc.nextInt();
}
int min=nums[0], max=nums[0];
for (int i = 0; i < cnt; i++) {
if(nums[i] < min) min = nums[i];
if(nums[i] > max) max = nums[i];
}
System.out.println(min + " " + max);
}
}
맞긴한데 다른 분들 코드를 보니 스트림을 이용해 배열을 정렬해서 최소 최대값을 구하는 방법이 있었다.
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int cnt = sc.nextInt();
int[] nums = new int[cnt];
for (int i = 0; i < cnt; i++) {
nums[i] = sc.nextInt();
}
Arrays.sort(nums);
System.out.println(nums[0] + " " + nums[cnt - 1]);
}
}
'6. 자료구조 & 알고리즘 > 6-2. 백준' 카테고리의 다른 글
백준 - [11654번: 아스키 코드] (0) | 2022.06.15 |
---|---|
백준 - [4673번: 셀프 넘버] (0) | 2022.06.15 |
백준 - [10951번: A+B -4] (0) | 2022.06.09 |
백준 - [15552번 : 빠른 A+B] (0) | 2022.06.09 |
백준 코드 깃허브에 자동 업로드 (0) | 2022.06.09 |