[백준] 2693번: N번째 큰 수 (JAVA)

2022. 1. 3. 21:27알고리즘

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

 

2693번: N번째 큰 수

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

www.acmicpc.net

 


 

문제설명

10개의 숫자들을 정렬해서 3번째로 큰 값을 구하는 문제이다.

 

코드

import java.util.ArrayList;
import java.util.Collections;
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);

		int t = sc.nextInt();
		ArrayList<Integer> list = new ArrayList<Integer>();

		for (int i = 0; i < t; i++) {
			list.clear();
			for (int j = 0; j < 10; j++) {
				list.add(sc.nextInt());
			}

			Collections.sort(list);
			System.out.println(list.get(7));
		}
	}
}

 

코드설명

테스트케이스의 개수 t를 입력받고 t만큼 for문, 그리고 10개의 숫자들을 입력받을 것이기 때문에 0부터 10까지의 for문을 돌린다.

그리고 입력받은 10개의 숫자들을 ArrayList안에다가 넣어서 정렬시킨다.

그러면 오름차순으로 정렬이 되어 나오는데, 우리는 3번째로 큰 값을 알아야하기 때문에 7번째의 인덱스를 가져와서 출력한다.

그리고 list.clear()를 하지 않으면 list에 계속해서 값이 쌓여서 출력이 엉뚱하게 나온다.