import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int arr[] = new int[n];
for (int i=0; i<n; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
Arrays.sort(arr);
bw.write(Integer.toString(arr[0])+" "+Integer.toString(arr[n-1]));
bw.flush();
br.close();
bw.close();
}
}
처음에 딱 생각난 게 Arrays.sort()
로 배열 정렬해서 처음 마지막 인덱스로 뽑아서 출력하는 방법이라서 그렇게 했는데 for문으로 풀면 시간 차이가 얼마나 날까 하고 다시 코드를 짜봤다
import java.io.*;
import java.util.*;
public class Main {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(System.out));
int n = Integer.parseInt(br.readLine());
StringTokenizer st = new StringTokenizer(br.readLine());
int arr[] = new int[n];
for (int i=0; i<n; i++){
arr[i] = Integer.parseInt(st.nextToken());
}
int max = arr[0];
int min = arr[0];
for (int i=1; i<n; i++){
if (max < arr[i]) max = arr[i];
if (min > arr[i]) min = arr[i];
}
bw.write(Integer.toString(min)+" "+Integer.toString(max));
bw.flush();
br.close();
bw.close();
}
}
Arrays.sort()으로 풀은 게 두 배나 더 걸렸음... 하긴 찾아보니까 Arrays.sort() 시간복잡도가 O(nlogn) 이라고 한다.
for문으로 푸는 게 다 느린 건 아니닿