[백준] 2693 N번째 큰 수 JAVA

·2024년 3월 2일

1일1백준 -Java-

목록 보기
21/60

문제

배열 A가 주어졌을 때, N번째 큰 값을 출력하는 프로그램을 작성하시오.

배열 A의 크기는 항상 10이고, 자연수만 가지고 있다. N은 항상 3이다.

입력

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

출력

각 테스트 케이스에 대해 한 줄에 하나씩 배열 A에서 3번째 큰 값을 출력한다.

예제 입력

4
1 2 3 4 5 6 7 8 9 1000
338 304 619 95 343 496 489 116 98 127
931 240 986 894 826 640 965 833 136 138
940 955 364 188 133 254 501 122 768 408

예제 출력

8
489
931
768

내가 했던 풀이 방법

정렬해서 7번째 인덱스 값 출력

코드

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.Arrays;

public class Main {
        public static void main(String[] args) throws IOException {
    
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		int number = Integer.parseInt(br.readLine());

        String[] input;
        int[] array = new int[10];
        for(int i=0; i<number; i++) {
            input = br.readLine().split(" ");

            for(int j=0; j<10; j++) {
                array[j] = Integer.parseInt(input[j]);
            }

            Arrays.sort(array);
            System.out.println(array[7]);
        }
    }
}

회고

음.. 필수 문제라고 추천받아서 풀게 된 문제인데 너무 쉬워서 당황했던 문제. 완전 기초 문제였나보다..
문제를 잘 읽지 않아서 일어난 이슈긴 하지만, 입력받은 전체 숫자를 정렬해서 출력하는 건 줄 알고, 한 줄씩 입력받은 배열을 합쳐주고 정렬시키기까지 했는데 그냥 줄마다 정렬해주는 문제더라.
오히려 내가 생각한 방법이면 오.. 할만 했는데 너무 쉬워서 아쉬웠달까.
sort를 쓰면 속도 때문에라도 틀리려나? 했는데 그것조차 아니여서 정말정말정말 당황스러운 문제..
왜 맞았지? 물론 틀리는 게 이상한 문제긴 한데 그래도 이렇게 맞추면 안 될 것 같은데...

profile
Frontend🍓

0개의 댓글