정렬을 하여 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 |