BOJ 2693 (N번째 큰 수)

JH·2023년 7월 3일
0

BOJ 알고리즘 (C++)

목록 보기
75/97
post-custom-banner

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

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

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

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

#include<iostream>
#include<vector>
#include<algorithm>
using namespace std;
vector<int> A;
int T;

void fast_io() {
    ios_base::sync_with_stdio(false);
    cin.tie(NULL); cout.tie(NULL);
}
void input() {
    cin >> T;
}

void solution() {
    int num = 0;
    while (T--) {
        for (int i = 0; i < 10; i++) {
            cin >> num; A.push_back(num);
        }
        sort(A.begin(), A.end());
        cout << A[7]<<'\n';
        A.clear();
    }
}

int main() {
    fast_io();
    input();
    solution();
    return 0;
}

   정렬 후 뒤에서 3번째 숫자를 출력해주기만 하면 된다.
맨날 Visual Studio에서 풀고 옮겨서 채점을 했는데 IDE 도움 없이 바로 푸려니까 확실히 컴파일 에러도 발생하고 놓치는 부분이 많다. 쉬운 문제부터라도 IDE 쓰지 않고 푸는 것을 연습해야겠다.

시간복잡도 : O(NlogN)


숏코딩 -> 다른 풀이는 없는 듯 싶다
profile
블로그 -> 노션
post-custom-banner

0개의 댓글