개발/알고리즘

11004_K번째 수

송디 2020. 11. 15. 11:52

정렬을 하여 k번째에 뭔가 있는지 찾는 문제이다. 간단할 줄 알았으나, N이 5000000이기 때문에 기존 방법으로는 안되었다. 나는 굳이 기존 방법을 하고 시간 초과를 겪었다. sort에서 에러가 나는가 보다. 

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
#include<iostream>
#include<algorithm>
#include<vector>
 
using namespace std;
 
int main(void){
    int n, k;
    vector<int> v;
 
    cin >> n >> k;
    for(int i = 0; i < n; i++){
        int num;
        cin >> num;
        v.push_back(num);
    }
    stable_sort(v.begin(), v.end());
    cout << v[k - 1<< "\n";
}
 
cs

하핫

열심히 고민해보다가 그냥 입출력에서 시간을 많이 잡아먹는 줄 알게 되었다. 

cin.tie(NULL);
ios::sync_with_stdio(false);

을 넣어주니 해결!

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
#include<iostream>
#include<algorithm>
#include<vector>
 
using namespace std;
vector<int> v;
 
int main(void){
    cin.tie(NULL);
    ios::sync_with_stdio(false);
    int n, k;
 
    cin >> n >> k;
    for(int i = 0; i < n; i++){
        int num;
        cin >> num;
        v.push_back(num);
    }
    sort(v.begin(), v.end());
    cout << v[k - 1<< "\n";
}
 
cs
728x90

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

11655_ROT13  (0) 2020.11.15
10820_문자열분석  (0) 2020.11.15
10825_국영수  (0) 2020.11.14
20057_마법사 상어와 토네이도  (0) 2020.11.03
2133_Tri Tiling(DP)  (0) 2020.10.31