본문 바로가기
백준

[백준] 2693번 : N번째 큰 수 – JAVA [자바]

by Hongwoo 2022. 8. 10.
반응형

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

 

2693번: N번째 큰 수

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

www.acmicpc.net

 


  • 문제

 

 


  • 문제 풀이

백준 2693번 N번째 큰 수는 브론즈 1 난이도의 정렬 문제이다. 이 문제에서는 테스트 케이스의 개수 T가 우선 입력으로 주어진다. 그리고 T 줄에서 10개의 수가 주어진다. 이때 각 테스트 케이스마다 3번째로 큰 값을 출력하면 된다. 

 

이 문제에서는 우선 배열에 입력으로 주어지는 10개의 수를 저장하고 배열을 오름차순으로 정렬을 해야 한다. 이 이유는 3번째로 큰 수를 찾아야 하기 때문이다. 따라서, 배열에 수들을 저장하고 Arrays 클래스에 있는 Arrays.sort(배열) 함수로 배열을 오름차순으로 정렬을 해줘야 한다.

 

이 배열의 크기는 항상 10이다. 따라서 3번째로 큰 수는 7번째 인덱스에 위치해 있다 (가장 큰 수가 9번째 인덱스에 있기 때문이다). 따라서 arr [7]을 출력해주면 된다.

 

자세한 코드는 밑에 있다.

 


  • 코드

 

import java.io.*;
import java.util.*;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        int t = Integer.parseInt(br.readLine());  //테스트 케이스 개수
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < t; i++) {
            int[] arr = new int[10];
            StringTokenizer st = new StringTokenizer(br.readLine());
            for (int j = 0; j < 10; j++) {
                arr[j] = Integer.parseInt(st.nextToken());
            }
            Arrays.sort(arr);  //배열 오름차순으로 정렬하기
            sb.append(arr[7] + "\n");  //3번째로 큰 수
        }
        System.out.print(sb);
    }
}

 

 

반응형

댓글