N개의 정수가 주어진다. 이때, 최솟값과 최댓값을 구하는 프로그램을 작성하시오.
package lv_1;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
public class B10818 {
public static void main(String[] args) throws Exception {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
int N = Integer.parseInt(br.readLine()); //정수의 개수 N을 입력받는다.
//Integer 타입의 List 만든다.
List<Integer> list = new ArrayList<>();
//정수 N개를 한줄로 입력받는다.
//입력값을 공백으로 구분해서 String 타입의 배열에 넣는다.
String[] str = br.readLine().split(" ");
//N번 반복한다.
for(int i=0;i<N;i++) {
int num = Integer.parseInt(str[i]); //배열의 값을 num 변수에 넣는다.
list.add(num); //list에 정수 추가
}
//list 길이만큼의 int 배열 생성
int[] arr = new int[list.size()];
//List -> 배열
//list에 있는 값을 arr 배열에 넣는다.
for(int i=0;i<arr.length;i++) {
arr[i] = list.get(i);
}
//배열을 오름차순으로 정렬
Arrays.sort(arr);
System.out.print(arr[0] + " " + arr[arr.length-1]);
}
}
List<Integer> list = new ArrayList<>();
int 타입의 배열은 Arrays.asList(arr);
로 변환할 수 없다.
Integer 타입의 List를 만든 후, list.add
를 사용해서 값을 추가해주어야 한다.
int[] arr = {1,2,3};
List<Integer> list = new ArrayList<>();
for(int n : list){
list.add(n);
}
String 타입은 toArray(arr)
를 사용해서 List를 배열로 변환할 수 있다. 하지만 int 타입은 안된다.
반복문을 사용해 list의 값을 배열에 넣어주어야 한다.
int[] arr = new int[list.size()];
for(int i=0;i<arr.length;i++) {
arr[i] = list.get(i);
}
readLine()
은 한 줄 전체를 읽는다. 만약 이 한 줄을 여러 데이터로 나누고 싶다면 split
을 사용하면 된다.
String regex
는 어떤 문자로 구분할 것인가를 적어주면 된다.
입력값으로 데이터를 나눈 후 배열로 저장한다.
String[] str = br.readLine().split(" ");
이 코드는 입력값을 공백으로 구분하여 각 값을 배열에 넣는다.
Arrays.sort
를 사용해서 배열을 오름차순
으로 정렬할 수 있다.
매개변수에 Collections.reverseOrder()
를 추가로 적어주면 내림차순
으로 정렬할 수 있다.