세 정수 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 를 넣어주는 방법도 있다.
'개발 > JAVA' 카테고리의 다른 글
[JAVA 백준] 10871. X보다 작은 수 (0) | 2019.11.20 |
---|---|
[JAVA 백준] 11022. A+B - 8 (0) | 2019.11.20 |
[JAVA] level1. 같은 숫자는 싫어 (0) | 2019.11.20 |
[JAVA] level1. 나누어 떨어지는 숫자 배열 / Arrays.sort() (0) | 2019.02.08 |
[JAVA] level1 . 정수 제곱근 판별 / Math.sqrt(n), Math.pow(n,m) (0) | 2019.01.23 |