elesis's haunt
10818 최소, 최대 본문
배열을 사용한 경우
* BufferedReader, StringTokenizer, sysout
* st.hasMoreTokens(), Arrays.sort()
import java.io.*;
import java.util.Arrays;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws Exception {
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]);
}
}
사용하지 않은 경우 (더빠름)
import java.io.*;
import java.util.StringTokenizer;
public class Main {
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Integer.parseInt(br.readLine()); //첫 줄 N 은 안쓰이므로 입력만 받는다.
StringTokenizer st = new StringTokenizer(br.readLine()," ");
int max = -1000001;
int min = 1000001;
while(st.hasMoreTokens()) {
int val = Integer.parseInt(st.nextToken());
if(val>max) {
max = val;
}
if(val<min) {
min = val;
}
}
System.out.println(min + " " + max);
}
}
입력 방법에서 Scanner 와 BufferedReader 의 메모리, 시간 차이는 어마어마하다.
배열을 사용하면 최악의 경우 시간복잡도가 O(N^2) 이지만 배열을 사용하지 않고 즉시 비교하는 경우 시간복잡도가 O(N) 이므로 훨씬 시간이 단축된다.
'백준~문풀 후 최적화 추가~ > 단계별로 풀어보기' 카테고리의 다른 글
2577 숫자의 개수 (0) | 2021.09.23 |
---|---|
2562 최댓값 (0) | 2021.09.23 |
1110 더하기 사이클 (0) | 2021.09.16 |
10951 A+B - 4 (0) | 2021.09.14 |
10952 A+B - 5 (0) | 2021.09.13 |
Comments