Notice
Recent Posts
Recent Comments
Link
«   2024/12   »
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31
Tags more
Archives
Today
Total
관리 메뉴

luke

[백준] - N번째 큰 수 (2693) (자바/Java) 본문

알고리즘문제/백준 문제(Java)

[백준] - N번째 큰 수 (2693) (자바/Java)

luke-king 2024. 4. 21. 16:30

 

 

 

 

 

https://www.acmicpc.net/problem/2693

 

2693번: N번째 큰 수

첫째 줄에 테스트 케이스의 개수 T(1 ≤ T ≤ 1,000)가 주어진다. 각 테스트 케이스는 한 줄로 이루어져 있고, 배열 A의 원소 10개가 공백으로 구분되어 주어진다. 이 원소는 1보다 크거나 같고, 1,000

www.acmicpc.net

 

 

 

 

 

 

 

 

 

문제.


 

 

 

 

 

 

 

 

풀이.


 

public class Main {

    public static void main(String[] args) {

        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        int[] arr;

        for (int i = 0; i < num; i++) {
            arr = new int[10];
            for (int j = 0; j < arr.length; j++) {
                arr[j] = sc.nextInt();

            }
            Arrays.sort(arr);
            System.out.println(arr[arr.length-3]);
        }
    }

}

 

이번 문제는 N번째 큰 수 구하기 문제다.

정답비율이 높은 만큼 이번 문제는 크게 어려움 없던 문제였던 거 같다. 또 문제 접근은 이미 문제에서 정해줬기에 더 푸는데 괜찮았다.

문제 접근은 배열 A가 주어지고 배열의 길이는 항상 10 이다. 또 배열에서 3번째로 큰 값만 출력하면 된다.

바로 문제 풀이를 해보겠다.

 

1. num 번만큼 배열이 생성 되어야 하기 때문에 배열은 for문 내에서 객체생성을 해줬다. 그래야 한 바퀴 돌 때마다 초기화가 되며 다시 입력해 4개의 3번째로 큰 값을 순서대로 출력할 수 있기 때문이다.

 

2. 배열의 길이는 10으로 지정했기에 배열의 길이만큼 원소 10개를 입력받는다.

 

3. 배열내에 3번째로 큰 수를 출력해야 하기에 Arrays.sort() 함수를 사용해 오름 차순으로 정렬해 준다.

 

4. 정렬해 준 배열에서 배열의 길이에서 -3 해 3번째로 큰 수를 출력하면 문제는 끝이 난다.