[Algorithm] 백준 10818
Array를 사용하지 않고 풀었을 때
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int[] arr = new int[num];
int max = 0;
int min = 0;
for (int i = 0; i < arr.length; i++) {
arr[i] = sc.nextInt();
}
for(int i = 0; i < arr.length; i++) {
if(max < arr[i]) {
max = arr[i];
}else if(max > arr[i]) {
min = arr[i];
}
}
System.out.printf("%d %d", min,max);
}
}
배열의 크기를 입력받고. 해당 배열의 크기만큼 반복문을 돌려 배열에 값을 입력받는다.
그 후 배열의 값들이 max와 min값의 조건에 맞게 다시 한번 반복문이 돌아가며, 값을 비교한다.
하지만 위의 코드는 오답으로 처리가 되었다.
Array를 사용하고 풀었을 때
import java.util.Arrays;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner sc = new Scanner(System.in);
int num = sc.nextInt();
int arr[] = new int[num];
// 배열의 길이만큼 돌면서 i에 입력값을 받는다
for (int i=0; i<arr.length; i++) {
arr[i] = sc.nextInt();
}
// sort를 사용해 배열을 정렬한다
Arrays.sort(arr);
// 정렬된 배열의 가장 작은 수
// 0번 인덱스의 것 = min 값
// 배열길이 -1 인덱스의 것 = max 값
System.out.println(arr[0] + " " + arr[num - 1]);
}
}
맨 첫줄에 N을 입력받아 해당 크기의 배열을 선언한 뒤 arr 배열 원소에 각각 입력받은 값을 넣어주는 방법이다.
Arrays.sort() 메소드를 활용한다.
이 메소드는 배열에 저장된 원소 값을 오름차순으로 정렬해주는 메소드다.
이 메소드를 활용하여 정렬하면 최솟값은 배열의 첫번째 원소(index 0)에, 최댓값은 배열의 마지막 원소(arr.length-1)에 있을테니 이를 출력하면 된다.
Leave a comment