Baekjoon/Silver

[백준 C/C++] 2693번 - N번째 큰 수

Cewi 2022. 1. 13. 20:28
반응형

문제

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

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

입출력

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

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

풀이

이진수를 구하듯 큰 비트부터 1까지 내려가며 n을 i로 빼주면 된다.

#include <cstdio>
#include <algorithm>

using namespace std;

int a[11];

int main() {
    int n;
    scanf("%d", &n);
    for(int i=0;i<n;i++){
        for(int j=0;j<10;j++){
            scanf(" %d", &a[j]);
        }
        sort(a, a+10);
        printf("%d\n", a[7]);
    }
}

 

반응형