문제
N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
입력
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
출력
첫째 줄에 주어진 정수 N개의 최솟값과 최댓값을 공백으로 구분해 출력한다.
제출 답안
import java.util.*;
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();
}
sc.close();
Arrays.sort(arr);
System.out.println(arr[0] + " " + arr[N-1]);
}
}
- 매번 Scanner로 입력받다가, 속도면에서는 BufferedReader가 낫길래 처음으로 답변 제출을 해봤는데 수차례 틀렸다.
- BufferedReader보다 Scanner 가 훨씬 쉽고 사용하기도 간단해서 자꾸 Scanner만 찾게 된다.
- 역시 아래 블로그에서 힌트를 얻었다.
- https://st-lab.tistory.com/43
[백준] 10818번 : 최소, 최대 - JAVA [자바]
https://www.acmicpc.net/problem/10818 10818번: 최소, 최대 첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나
st-lab.tistory.com
import java.util.*;
import java.io.*;
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.hasMoreTokens()){
arr[index] = Integer.parseInt(st.nextToken());
index++;
}
Arrays.sort(arr);
System.out.println(arr[0] + " " + arr[N-1]);
}
}
'문제 풀이 > 알고리즘 풀이' 카테고리의 다른 글
[백준/10813번/JAVA] 공 바꾸기 (0) | 2023.08.31 |
---|---|
[백준/2562번/JAVA] 최댓값 (0) | 2023.08.30 |
[백준/10871번/JAVA] X보다 작은 (0) | 2023.08.29 |
[백준/10952번/JAVA] A+B - 5 (0) | 2023.08.25 |
[백준/10807번/JAVA] 개수 세기 (0) | 2023.08.25 |