본문 바로가기
알고리즘/백준

알고리즘(C++) / 백준 2693 : N번째 큰수

by clean_h 2021. 2. 18.
728x90

2693

www.acmicpc.net/problem/2693

 

2693번: N번째 큰 수

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

www.acmicpc.net

 

문제

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

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

 

입력

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

 

출력

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

 

코드

//2693 N번쨰 큰수
#include <iostream>
#include <algorithm>
using namespace std;

int main() {
	int A[10];
	int N = 3;
	int num = 0; 
	cin >> num;

	for (int i = 0; i < num; i++) {
		for (int j = 0; j < 10; j++) {
			cin >> A[j];
		}
		sort(A, A + 10);
		cout << A[10 - N] << endl;
	}
	return 0;
}

 

결과

 

설명

#include <algorithm> 해더파일의 sort함수를 이용하여 이번 문제도 쉽게 구현가능하다.

처음 테스트 케이스의 개수만큼 10를 반복하여 받아온다. 10개의 수를 배열 A에 저장한 후 sort함수로 배열을 오름차순으로 정렬한 후 정렬된 배열에서 3번째로 큰 수를 출력한다. 

728x90

댓글