레벨: 실버 5
날짜: 2023년 4월 6일 오후 10:24
문제번호: 2751
알고리즘: 정렬
시간 제한 | 메모리 제한 | 제출 | 정답 | 맞힌 사람 | 정답 비율 |
---|---|---|---|---|---|
2 초 | 256 MB | 251673 | 73745 | 51469 | 30.704% |
N개의 수가 주어졌을 때, 이를 오름차순으로 정렬하는 프로그램을 작성하시오.
첫째 줄에 수의 개수 N(1 ≤ N ≤ 1,000,000)이 주어진다. 둘째 줄부터 N개의 줄에는 수가 주어진다. 이 수는 절댓값이 1,000,000보다 작거나 같은 정수이다. 수는 중복되지 않는다.
첫째 줄부터 N개의 줄에 오름차순으로 정렬한 결과를 한 줄에 하나씩 출력한다.
5
5
4
3
2
1
1
2
3
4
5
단순히 sort 함수로 정렬하면 된다고 생각했다.
#include <iostream>
#include <algorithm> //sort함수
using namespace std;
int main() {
int n;
cin>>n;
int arr[n];
for(int i=0; i<n; i++) {
cin>>arr[i];
}
sort(arr, arr+n); //sort(배열의 포인터, 배열의 포인터 + 배열의 크기)
for(int i=0; i<n; i++) {
cout<<arr[i]<<endl;
}
return 0;
}
그런데 시간초과가 나버렸다.
ios::sync_with_stdio(false);
cin.tie(NULL)
cout.tie(NULL)
의 중요함을 알게되었다.
또한 endl;말고 ‘\n’을 이제부터 계속 써야겠다.
#include <iostream>
#include <algorithm> //sort함수
using namespace std;
int main() {
ios::sync_with_stdio(false);
cin.tie(NULL);
cout.tie(NULL);
int n;
cin>>n;
int arr[n];
for(int i=0; i<n; i++) {
cin>>arr[i];
}
sort(arr, arr+n); //sort(배열의 포인터, 배열의 포인터 + 배열의 크기)
for(int i=0; i<n; i++) {
cout<<arr[i]<<'\n';
}
return 0;
}