문제
https://www.acmicpc.net/problem/10818
10818번: 최소, 최대
첫째 줄에 정수의 개수 N (1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄에는 N개의 정수를 공백으로 구분해서 주어진다. 모든 정수는 -1,000,000보다 크거나 같고, 1,000,000보다 작거나 같은 정수이다.
www.acmicpc.net
입력할 갯수 N을 입력받은 뒤, 정수들을 입력한다. 입력한 정수 중에서 최솟값과 최댓값을 출력하는 문제이다.
입력 출력
4 2 15
2 10 15 6
------------------------------------------------------------------------------------------------------------------
풀이
정수들을 입력받은 뒤, 첫번째 배열 값을 초기값으로 설정하였다.
> min = array1[0], max = array1[0]
이후, 배열의 원소 값 중 min보다 작은 경우 최솟값으로 설정, 배열의 원소 값 중 max보다 큰 경우 최댓값으로 설정되게 반복문을 만들었다.
(1) Scanner 사용
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int array1[] = new int[n];
for(int i=0;i<array1.length;i++) {
array1[i] = sc.nextInt();
}
sc.close();
int min = array1[0];
int max = array1[0];
for(int i=0;i<array1.length;i++) {
if(min>array1[i]) min = array1[i];
if(max<array1[i]) max = array1[i];
}
System.out.println(min+" "+max);
}
}
------------------------------------------------------------------------------------------------------------------
(2) BufferdReader 사용
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.StringTokenizer;
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 strtk = new StringTokenizer(br.readLine()," ");
int array1[] = new int[n];
for(int i=0;i<array1.length;i++) {
array1[i] = Integer.parseInt(strtk.nextToken());
}
br.close();
int min = array1[0];
int max = array1[0];
for(int i=0;i<array1.length;i++) {
if(array1[i]>max) max = array1[i];
if(array1[i]<min) min = array1[i];
}
System.out.println(min+" "+max);
}
}
위가 BufferedReader, 아래가 Scanner를 사용했을 때이다.
입력되는 범위가 넓어서 메모리와 시간 차이가 무려 3배나 났다.
'문제 풀이' 카테고리의 다른 글
[백준] 10810번: 공 넣기 - JAVA (자바) (0) | 2023.05.05 |
---|---|
[백준] 2562번: 최댓값 - JAVA (자바) (0) | 2023.05.02 |
[백준] 10871번: X보다 작은 수 - JAVA (자바) (0) | 2023.02.10 |
[백준] 10807번: 개수 세기 - JAVA (자바) (0) | 2023.02.06 |
[백준] 1110번: 더하기 사이클 - JAVA (자바) (0) | 2023.02.04 |