[JAVA 백준] 10817. 세 수
세 정수 A, B, C가 주어진다. 이때, 두 번째로 큰 정수를 출력하는 프로그램을 작성하시오.
문제는 매우 간단하지만 새롭게 알게 된 게 있으면 공부가 되는 거니까
문제를 풀다가 입력받은 int 를 배열에 넣는 더 효율적인 소스를 알게되어서 같이 작성해보려고 한다.
먼저 내 소스는
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int a = sc.nextInt(); int b = sc.nextInt(); int c = sc.nextInt(); sc.close(); //sc.close()를 통해 메모리 사용량을 줄일 수 있다.
int[] arr = {a,b,c}; Arrays.sort(arr); //Arrays 의 sort 메소드 사용하여 오름차순 정렬 System.out.println(arr[1]); //두번째 element 출력 } } |
나는 입력받은 int 를 하나씩 직접 배열 선언시에 넣어줬는데 만약 입력되는 int의 개수가 매우 많을 때에는 비효율적일 수 있다.
따라서
import java.util.*; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int[] arr = new int[3]; //입력될 int 개수 크기 만큼 배열 선언 for (int i = 0; i < arr.length; ++i) { //배열 arr 에 입력받는 int 넣기 arr[i] = sc.nextInt(); } Arrays.sort(arr); System.out.println(arr[1]); } } |
이렇게 배열 선언시에 크기만 명시하고 나중에 for 문으로 element 를 넣어주는 방법도 있다.