View

[백준] K번째 수

sm_amoled 2021. 8. 11. 13:11
300x250

문제 링크

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

문제

수 N개 A1, A2, ..., AN이 주어진다. A를 오름차순 정렬했을 때, 앞에서부터 K번째 있는 수를 구하는 프로그램을 작성하시오.

입력

첫째 줄에 N(1 ≤ N ≤ 5,000,000)과 K (1 ≤ K ≤ N)이 주어진다.

둘째에는 A1, A2, ..., AN이 주어진다. (-109 ≤ Ai ≤ 109)

출력

A를 정렬했을 때, 앞에서부터 K번째 있는 수를 출력한다.

조건

  • 시간 제한 : 2s
  • 메모리 제한 : 512MB

해설

정렬 알고리즘을 이용해 매우 쉽게 해결 가능한 문제이다.

풀이

수를 입력받아 지정된 개수만큼 vector에 저장하여 넣어준다. sort() 함수를 이용해 vector를 정렬해주고, 앞에서 K 번째 수(index가 K-1) 을 출력한다.


코멘트

요즘은 Vector 쓰는 연습을 하고있다. 확실히 동적인 프로그래밍을 할 때 유용한 것 같다.


코드

#include <iostream>
#include <algorithm>
#include <vector>

using namespace std;

int main() {
    vector<int> v;
    int count, K, inputNumber;
    cin >> count >> K;

    for(int i = 0; i < count; i++) {
        scanf("%d", &inputNumber);
        v.push_back(inputNumber);
    }
    sort(v.begin(), v.end());

    cout << v[K-1];
    return 0;
}

320x100

'Develop > 알고리즘' 카테고리의 다른 글

[백준] 2231 - 분해합  (0) 2021.08.11
[백준] 11656 - 접미사 배열  (0) 2021.08.11
[백준] 10814 - 나이순 정렬  (0) 2021.08.11
[백준] 11053 - 가장 긴 증가하는 부분 수열  (0) 2021.08.11
[백준] 2193 - 이친수  (0) 2021.08.10
Share Link
reply
반응형
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31