백준 N번째 큰 수

KIMYEONGJUN·2024년 11월 10일
post-thumbnail

문제

내가 생각했을때 문제에서 원하는부분

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

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

내가 이 문제를 보고 생각해본 부분

입력 처리: BufferedReader를 사용하여 입력을 빠르게 처리한다.
첫 번째 줄에서 테스트 케이스의 수를 읽고, 각 테스트 케이스마다 배열을 입력받는다.
정렬: Arrays.sort() 메서드를 사용하여 배열을 오름차순으로 정렬한다.
3번째 큰 수 찾기: 정렬된 배열에서 3번째 큰 수는 인덱스 7에 해당하므로 A[7]을 사용하여 얻는다.
결과 출력: 모든 결과를 StringBuilder에 저장한 후 한 번에 출력한다.

코드로 구현

package baekjoon.baekjoon_24;

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

// 백준 2693번 문제
public class Main833 {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringBuilder sb = new StringBuilder(); // 결과를 저장할 StringBuilder

        int T = Integer.parseInt(br.readLine()); // 테스트 케이스 수

        for(int i = 0; i < T; i++) {
            String[] input = br.readLine().split(" "); // 공백으로 구분된 입력 받기
            int[] A = new int[10]; // 배열 A의 크기는 항상 10

            // 입력값을 배열 A에 저장
            for (int j = 0; j < 10; j++) {
                A[j] = Integer.parseInt(input[j]);
            }

            // 배열 A를 내림차순으로 정렬
            Arrays.sort(A);
            // 3번째로 큰 값은 정렬된 배열에서 7번째 인덱스에 위치
            sb.append(A[7]).append("\n");
        }

        // 결과 출력
        System.out.print(sb.toString());
        br.close();
    }
}

마무리

코드와 설명이 부족할수 있습니다. 코드를 보시고 문제가 있거나 코드 개선이 필요한 부분이 있다면 댓글로 말해주시면 감사한 마음으로 참고해 코드를 수정 하겠습니다.

profile
Junior backend developer

0개의 댓글